Problème formule VBA avec Label dynamique

Bonjour

je rencontre un problème dans le fichier que je suis en train de faire.

Dans le formulaire, j'ai 2 comboboxs :

La première me sert à sélectionner un secteur (A, B, C...) puis à m’afficher la liste des blocs grâce aux labels.

Le deuxième me sert à sélectionner le numéro de la tournée. A la suite de cette étape, il y a 2 choix : soit il n'y a pas d'infos existantes dans l'onglet "Enregistrement" et dans ce cas un message box me demande si je veux ouvrir une nouvelle tournée, soit il y a des infos existantes et dans ce cas le formulaire va reprendre ces informations et mettre à jour automatiquement les checkboxs.

Mon problème est que, dans l'exemple que j'ai associé, il y a bien des informations existantes et que la macro devrait normalement venir me les chercher, or ce n'est pas le cas.

J'utilise les Controls("Label" & e).Caption et j'ai l'impression que c'est à ce niveau que se situe l'erreur.

Si quelqu'un pourrait m'aider, ça serait très sympa.

21test.xlsm (174.58 Ko)

Bonjour

Je pense qu'il s'agit d'un problème de nom de zones : une lettre ne suffit pas pour nommer une colonne il en faut au moins 4, ou 3+1 chiffres pour éviter toute confusion avec des nr de colonnes

Ensuite , ta feuille liste n'est pas structurée de manière cohérente. Tu peux mettre tes secteurs de A à R les uns sous les autres, un siple filtre te permettra de récupérer tes infos. Il est inutile de tout prévoir, il vaut mieux saisir ce qui existe et rajouter après.

Que veux tu faire en affichant toutes ces lignes à l'écran ? Les infos de repérage des bloc n'apparaissent pas, il vaut mieux mettre des boutons radio plutôt que des cases à , une liste avec les 4 statuts pourrait être aussi suffisante

Pourquoi afficher tous les statuts, un filtre serait peut être plus intéressants pour moins encombrer l'écran

Les deux premiers points me paraissent essentiels, les autres questions sont de pure forme à fin de conseils

Soumis à ta sagacité

Cordialement

FINDRH

Bonjour FINDRH et merci pour ta réponse

Pour des raisons de confidentialité, je ne peux pas mettre le fichier original. Sur ce fichier, il a bien des noms de secteur avec au moins 4 lettres et je rencontre aussi le même problème, donc je ne suis pas sûr que le problème vienne de là.

Concernant la structure, il y a surement des choses à améliorer mais mon but est que ce formulaire soit accessible à la compréhension pour quelqu'un se servant très peu d'un ordinateur. Et pour cela, je pense que des cases à cocher est beaucoup plus simple et visuel bien que je suis d'accord ça semble un peu lourd.

Pour les macros, je comprendrais aussi qu'il y ait des aberrations ou des formules à simplifier mais pour ma part je débute et j'en découvre davantage tous les jours .

Cordialement

bonjour

essayer de comprendre ca

42test-formulire.xlsm (133.05 Ko)

Merci AMIR, ça a l'air très intéressant ton développement de formules. Je vais analyser ça de plus près .

Sur mon fichier, j'ai trouvé le problème. Je comparais des chiffres et du texte dans mon IF : .Range("D" & x) = Controls("Label" & e).Caption . Quand je mets un val() sur les 2 critères ça fonctionne : Val(.Range("D" & x)) = Val(Controls("Label" & e).Caption) .

Merci pour votre aide.

Bonne journée

bonsoir

Antoine15069 a écrit :

Merci AMIR, ça a l'air très intéressant ton développement de formules. Je vais analyser ça de plus près .

oui , l idée était de vous débarrasser des bouts de codes inutiles comme :

'ligne 1
Private Sub CheckBox1_afterupdate()
CheckBox1.Value = True
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
End Sub
Private Sub CheckBox2_afterupdate()
CheckBox1.Value = False
CheckBox2.Value = True
CheckBox3.Value = False
CheckBox4.Value = False
End Sub
Private Sub CheckBox3_afterupdate()
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = True
CheckBox4.Value = False
End Sub

jusque-au lignes 55 ou je ne sais pas par lutilisation des option buttons et dans les frames

Antoine15069 a écrit :

Sur mon fichier, j'ai trouvé le problème. Je comparais des chiffres et du texte dans mon IF : .Range("D" & x) = Controls("Label" & e).Caption . Quand je mets un val() sur les 2 critères ça fonctionne : Val(.Range("D" & x)) = Val(Controls("Label" & e).Caption) .

je n était pas intéresse aux problèmes pcq j ai pensé que vous aurez besoin de refaire tout les codes, pcq vous pouvez le faire seulement avec quelques boucles et autre simples notions de VBA.

Il n' y a pas de soucis .

Dans l'immédiat, j'avais besoin de sortir un bout de programme pour commencer à l'utiliser.

Par contre, il est clair que je vais reprendre votre exemple pour le comprendre dans un premier temps puis pour m'aider à simplifier les formules du fichier.

Merci pour vos infos.

Rechercher des sujets similaires à "probleme formule vba label dynamique"