Problème de "formulaire"

Bien le bonjour à tous

Dans l'onglet 'Liste_balade , tous fonctionne correctement.

Dans le fichier, le nom de la commune en " D " dépend de du nom du pays en " C "

Le problème se trouve au niveau du " formulaire " dans la combobox " Communes "

je ne parviens pas à avoir les communes des autres pays,

RowSource : " =indirect(liste_balades!ad2:ad6) ". (Belgique)

j'ai forcément la liste des communes de Belgique .

Que dois-je modifier pour changer cela et obtenir les communes correspondantes au pays en colonne " C ".

Merci d'avance et bonne journée .

Bonjour,

Par rapport à votre question, vous ne pouvez pas utiliser de formule avec l'instruction Rowssource.

Au regard du fichier :

- il faut éviter d'utiiser Rowsource, vous ne risquez que d'avoir des soucis avec cette instruction. Il faut toujours lui préférer l'instruction LIST ou ADDITEM
- Il aurait peut être été plus intéressant d'avoir les colonnes P et suivantes sur une feuille séparée
- Vous travaillez avec des tableaux structurés et dans ce cas, il ne faut jamais avoir de lignes sans données

Donc il y a quelques changements à faire et si vous êtes d'accord sur ce point, j'adapte votre fichier


Pour votre souci, le mieux serait de faire un tableau avec deux colonnes, 1 colonne avec le pays et 1 colonne avec les communes. Soit deux colonnes reprenant toutes les données pays et communes, ou alors un tableau par pays comme vous avez fait mais au lieu par exemple de nommer Commune (B), vous pourriez mettre simplement Belgique (et la colonne reprend les communes comme vous l'avez fait)
Au final, on aurait un tableau comme ceci

image

ou comme ceci où on a séparé chaque pays d'une colonne - seul avantage c'est si vous voulez trier une seule colonne: mais coté code ce sera plus compliqué et pour votre demande au sujet de votre liste de validation, c'est encore plus complexe voire à oublier.

image

Merci pour réponse rapide.

Dsl pour réponse super tarfive; mais problèmes de santé.

Ne suis pas assez en VBA pour comprendre cmt faire. Je vais essayer de me débrouiller.

Merci quand même et bonne journée.

re,

Ne suis pas assez en VBA pour comprendre cmt faire. Je vais essayer de me débrouiller.

Ce n'est pas un souci. J'ai préparé votre fichier pour vous le rendre modifié.
Si vous êtes ok sur le point du tableau des pays, je vous renvoie le fichier

Crdlt

Re bonjour, oui super, merci d'avance.

Bonne journée.

Re

Ok je prends le premier tableau montré dans mon post précédent

Une question : Dans le tableau de la feuille vous avez des listes déroulantes dans certaines colonnes. Est-ce qu'elles doivent être conservées sachant que vous utilisez une userform ? Vous les avez peut être laissées dans le but de pouvoir modifier une donnée ?

Oui, si c'est possible je préférerait les garder.

Encore merci de passer du temps pour moi.

Re

Votre fichier en retour dans lequel, j'ai modifié :

- Les codes dans l'USF avec suppression de la propriété Rowssource pour chaque combo
- Créé une feuille "References" pour placer les listes de données que vous aviez en colonne Q et suivantes
- Adapté les listes de validation dans la feuille Liste balade
- Ajout d'un code de tri pour que lorsque dans l'USF vous choisissez un pays dans la Cbox_pays, les communes apparaissent triées dans la CBox_Communes

Lorsque vous ajoutez dans données dans la feuille Liste Balades, vous devez toujours le faire via l'USF
Par contre la modification d'une ligne est possible via les listes de validation

Tous les tableaux sont au format structuré et dans ce cas, vous ne devez jamais avoir de ligne sans données.
Exemples en feuille Reference :
1. colonne H. Si vous devez ajouter une donnée, sélectionnez H10 puis mettez votre nouvelle donnée.
2. Pour le tableau des pays à gauche,
- si vous devez ajouter une donnée en colonne A, sélectionnez A121, puis ajoutez votre ville.
- si vous devez ajouter un nouveau pays, mettez-vous en F1 et entrez le nouveau pays.

Dans chaque cas, le tableau s'adapte automatiquement

Rem : Je n'ai pas touché ou regardé ce que vous avez mis en colonne M à P car je n'ai pas compris l'utilité

Si question n'hésitez pas


Edit : J'ai aussi réorganisé le gestionnaire de noms en renommant certains noms et en supprimant ce qui ne servait plus.

ok super, je regarderai 2main car ce soir foot.

Merci pour le temps passé pour moi et bonne soirée

Ok 7super, encore merci pour tous.

Bonne journée.

Bonjour, me revoilà.

Jusqu'ici tous fonctionne bien, juste 1 pt détail en colonne " A " :

en " A2 " , j'ai le chiffre " 1 "

en " A3 " , j'avais la " formule :" = si(B3="";"";A2+1)"

Lorsque j'ajoute une nouvelle ligne,

la cellule "A4" m'indique systématiquement la formule suivante: =SI(B4="";"";1) et donc j'ai le chiffre "1" à chaque nouvelle ligne

J'aimerais supprimer cette formule et que le nombre s'incrémente de 1 à chaque nouvelle ligne

Que dois-je changer ou modifier et où?

Encore un fois merci d'avance.

Re

Pour répondre à votre demande au sujet du numéro en colonne A, faites ceci

- Puisque vous avez trois lignes dans le fichier posté, supprimez la formule en A1, A2 et A3 et mettez repectivement le chiffre 1, 2 et 3
- Allez dans l'usf au code Private Sub Valider_Click(), et juste en dessous de la ligne --> With .DataBodyRange, ajoutez cette ligne

                .Item(lig, 1) = WorksheetFunction.Max(Range("T_Liste").ListObject.ListRows.Count)

Si vous vouliez garder la formule (ce qui est moins bien), il suffisait en A2 de la remplacer par ceci --> =SI(B2="";"";LIGNE()-1) puis recopier jusque A4
Mais l'option de le faire par code est meilleure car cela vous évite que le numéro ne change si notamment vous vouliez trier la liste.

dites moi si ok

Rem : restera peut-être une chose qui peut vous ennuyer. C'est si vous changez le pays directement dans la colonne C. Mais je suppose que ce sera jamais le cas. Sinon dites-moi

Cordialement

ok, je vais essayer cela.

Merci encore et bonne soirée, vous tiens au courant.

Bonjour à tous,

Puisque vous utiliser un formulaire utilisateur pour ajouter les nouvelles balades, je vous conseille de l'utiliser pour gérer cette colonne la mise en place de formule ne peut (selon le besoin de la colonne.) que vous apporter des ennuis.

Vous pouvez utiliser des classes pour gérer la vérification des zones de texte et des labels.

Je vous conseille d'initialiser les tableaux et liste de noms des colonnes dans un module ici Factory. Cela vous éviteras de devoir vérifier tous le code en cas de changement de nom de colonne.

Voici un petit exemple avec une gestion minimum du ruban.

Édit : Correction de petits bugs.

10valtrase-balade.xlsm (111.94 Ko)

Bonjour, je viens de recevoir votre fichier "zip", pas encore regardé; mais si ce n'est pas abuser, j'ai encore besoin de vos lumières.

J'ai ajouté la colonne "Date"

et 1 "txtbox_date" dans le formulaire

et un calendrier en VBA

modifier dans les codes de "valider"

pensant avoir le calendrier en cliquant sur la "txtbox" mais ça ne fonctionne pas.

Où ai-je fais des erreurs?

Je n'ai pas modifié votre formulaire pour garder l'original, les modifications sont dans "formulaire copie".

J'envisage aussi après de mettre 1 bouton pour "Modifier"

et 1 bouton "Supprimer" pour supprimer la ligne complète.

Si je n'en sort pas, puis-je encore compter sur vos conseils et solutions bienveillantes?

Re-bonjour, apparemment pas vu qu'un autre poster "Jean Paul - Valtrasse" m'a laisser le fichier zip, merci à lui.

Pour "Dan" encore merci pour tous, attendant la réponse pour la solution de la date dans le formulaire.

Bon weekend à tous.

Bonjour à tous,

@jearol53, J'ai fait une mise à jour du formulaire avec un champ date et une classe pour la date (A mon humble avis, cela complique tout pour si peu.)

Bonne programmation.

14valtrase-balade.xlsm (187.41 Ko)

Bonjour

Désolé pour le retard

puis-je encore compter sur vos conseils et solutions bienveillantes?

Bien entendu

J'ai bien repris votre fichier et noté votre idée de rajouter deux boutons.
Pour la colonne Date et le code, c'est bon

Par contre vous avez ajouté deux userform pour lesquelles vous utilisez la fonction Calendar. Cette fonctionnalité n'existe plus dans les versions excel 2013 et suivantes et donc excel me revoit un message d'erreur à l'ouverture de votre fichier
A voir votre profil, je vois que vous avez la version 2010 qui effectivement permettait l'ajout d'un calendrier dans les USF (outil Monthview)

A ce stade, on le choix entre deux solutions possible. La plus simple est d'abandonner les userform Calendrier et vous entrez la date dans la textbox ou vous continuez sur l'idée d'une userform et là il faut refaire les userform incluant un calendrier

Dites-moi ce que vous voulez faire

Je vous mets un lien retrouvé sur le site à ce sujet et une userform faite par Galopin à l'époque.
Juste pour savoir, peut-être pourriez-vous dire si cela fonctionne sur votre version Excel --> https://forum.excel-pratique.com/excel/monthview-excel-2016-77151

A l'attention de Jean-Paul (Valtrass)

Bonjour, merci pour ts le travail effectué pour moi.

J'ai 1 souci avec le 1er fichier, quand je valide les données du formulaire:

réponse d'excel:

"erreur d'exécution '9' (l'indice n'appartient pas à la sélection)

Dans " Valider" 5éme ligne -- KilometerNumber -- Value= Distance.Value

Dans le second fichier cela fonctionne, j'ai comparé les 2 et je ne parviens pas à trouver où est l'erreur.

J'ai vérifier les noms des texbox au cas ou il y aurait une différence; mais je ne trouve rien.

Si ce n'est pas abuser, pourriez-vous y jeter 1 œil et me dire ce que je dois corriger.

Merci d'avance et bon dimanche.

A l'attention de Dan

Merci pour ce nouveau fichier, je vais regarder si cela fonctionne.

Encore merci et bon dimanche.

Rechercher des sujets similaires à "probleme formulaire"