Afficher les valeur d'une collection par msgbox VBA
Résolu/Fermé
tictac847
Messages postés
26
Date d'inscription
mercredi 5 octobre 2011
Statut
Membre
Dernière intervention
24 décembre 2013
-
Modifié par tictac847 le 30/01/2013 à 15:29
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 30 janv. 2013 à 16:10
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 30 janv. 2013 à 16:10
A voir également:
- Afficher les valeur d'une collection par msgbox VBA
- Windows 11 clic droit afficher plus d'options par défaut - Guide
- Afficher appdata - Guide
- Afficher les commentaires word - Guide
- Afficher mot de passe wifi android - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
30 janv. 2013 à 15:48
30 janv. 2013 à 15:48
Bonjour,
Je ne vois pas du tout, avec ce code, ou vous voulez en venir...
En début de code :
Donc votre variable Couleur a une valeur fixe et déterminée par le choix dans la Combobox. OK.
Et plus loin :
Donc, en gros, si le contenu de cel.Offset(0, 1) est égal à couleur alors on enregistre cette valeur dans notre collection. Donc on veut enregistrer dans notre collection x fois Couleur... Quel intérêt???
De plus, le reste du code malgré quelques erreurs est correct. Donc si MsgBox vide c'est que VBA n'a pas rouvé de valeur correspondante. Ou alors, la présence de On Error Resume Next masque une erreur...
Pour vérifier cela effectuez votre macro en mode pas à pas en enlevant le traitement d'erreur.
petites erreurs :
1- Déclaration des variables :
Toujours renseigner le type :
Dim QteCom, qte, TaillePak, Reste As Long
veut dire : QteCom = Variant, qte = Variant, TaillePak = Variant et Reste = Long
à remplacer donc par :
2- dernière ligne :
A remplacer donc par (par exemple) :
Je ne vois pas du tout, avec ce code, ou vous voulez en venir...
En début de code :
Couleur = UserFormRapportCoupe.ComboboxCouleur.Value
Donc votre variable Couleur a une valeur fixe et déterminée par le choix dans la Combobox. OK.
Et plus loin :
If cel.Offset(0, 1).Value = Couleur Then TabTaille.Add cel.Offset(0, 1).Value
Donc, en gros, si le contenu de cel.Offset(0, 1) est égal à couleur alors on enregistre cette valeur dans notre collection. Donc on veut enregistrer dans notre collection x fois Couleur... Quel intérêt???
De plus, le reste du code malgré quelques erreurs est correct. Donc si MsgBox vide c'est que VBA n'a pas rouvé de valeur correspondante. Ou alors, la présence de On Error Resume Next masque une erreur...
Pour vérifier cela effectuez votre macro en mode pas à pas en enlevant le traitement d'erreur.
petites erreurs :
1- Déclaration des variables :
Toujours renseigner le type :
Dim QteCom, qte, TaillePak, Reste As Long
veut dire : QteCom = Variant, qte = Variant, TaillePak = Variant et Reste = Long
à remplacer donc par :
Dim QteCom As Long, qte As Long, TaillePak As Long, Reste As Long Dim RefOF As String, Couleur As String Dim a As Range, cel As Range Dim TabTaille As New Collection, TabQte As New Collection
2- dernière ligne :
.Range("B1000").End(xlUp).RowSi jamais le tableau évolue...
A remplacer donc par (par exemple) :
.Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
tictac847
Messages postés
26
Date d'inscription
mercredi 5 octobre 2011
Statut
Membre
Dernière intervention
24 décembre 2013
Modifié par tictac847 le 30/01/2013 à 16:08
Modifié par tictac847 le 30/01/2013 à 16:08
Merci Franck pour votre réponse rapides.
Vous avez raison c'est :
que je recherchais, c'etait une étourderie.
Mais dans tous les cas ça aurais dut m'afficher les X fois couleur dans mon message box. C'est ce qui arrive maintenant.
Changer la déclaration des variables comme vous me l'avez proposé à régler mon problème. C'est la que devait se trouver l'erreur.
Je pense que TailleTab etait considérée comme Variant, si j'ai bien suivi votre raisonnement.
Merci pour la correction et les tuyaux.
Vous avez raison c'est :
If cel.Offset(0, 1).Value = Couleur Then TabTaille.Add cel.Offset(0, 2).Value
que je recherchais, c'etait une étourderie.
Mais dans tous les cas ça aurais dut m'afficher les X fois couleur dans mon message box. C'est ce qui arrive maintenant.
Changer la déclaration des variables comme vous me l'avez proposé à régler mon problème. C'est la que devait se trouver l'erreur.
Je pense que TailleTab etait considérée comme Variant, si j'ai bien suivi votre raisonnement.
Merci pour la correction et les tuyaux.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
30 janv. 2013 à 16:10
30 janv. 2013 à 16:10
C'est tout à fait cela.
De rien.
A+
De rien.
A+