Pb msgbox vba
Résolu/Fermé
judoka33
Messages postés
13
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
13 décembre 2012
-
Modifié par irongege le 12/12/2012 à 17:51
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 13 déc. 2012 à 11:13
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 13 déc. 2012 à 11:13
A voir également:
- Pb msgbox vba
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
12 réponses
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
12 déc. 2012 à 10:31
12 déc. 2012 à 10:31
Bonjour judoka33,
Difficile de s'y retrouver dans tous ces codes .. nom du module "Tol_infe_tube" = ok
Quel est le MsgBox qui ne fonctionne pas ?
Difficile de s'y retrouver dans tous ces codes .. nom du module "Tol_infe_tube" = ok
Quel est le MsgBox qui ne fonctionne pas ?
judoka33
Messages postés
13
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
13 décembre 2012
12 déc. 2012 à 13:52
12 déc. 2012 à 13:52
' Message d'indication Nuance à privilégier pour les raccords (Weldolet, Bossage, Raccord taraudée, Bouchons...) et les Coude, Té, Réducteur, Caps
'Const Li_deb = 26 ' Ligne 26
'Const Li_fin = 34 ' Ligne 34
Dim Li As Long
For Li = 26 To 34 'Li = Li_deb To Li_fin
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
Exit For
End If
Next Li
'MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
'Exit For
'Next Li
'End If
Voila la partie du code.
Le code est en fin de Tol_infe_tube
'Const Li_deb = 26 ' Ligne 26
'Const Li_fin = 34 ' Ligne 34
Dim Li As Long
For Li = 26 To 34 'Li = Li_deb To Li_fin
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
Exit For
End If
Next Li
'MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
'Exit For
'Next Li
'End If
Voila la partie du code.
Le code est en fin de Tol_infe_tube
Bonjour,
Dans ta boucle For Next, du ne changes pas la valeur de Nuance en fonction de Li, ce qui fait que la condition If n'a pas de sens dans ce contexte.
Par exemple si Nuance se trouve dans la colonne A
For Li = 26 To 34 'Li = Li_deb To Li_fin
Nuance = Range("A" & Li).Value
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
Exit For
End If
Next Li
A+
Dans ta boucle For Next, du ne changes pas la valeur de Nuance en fonction de Li, ce qui fait que la condition If n'a pas de sens dans ce contexte.
Par exemple si Nuance se trouve dans la colonne A
For Li = 26 To 34 'Li = Li_deb To Li_fin
Nuance = Range("A" & Li).Value
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
Exit For
End If
Next Li
A+
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 12/12/2012 à 15:17
Modifié par Heliotte le 12/12/2012 à 15:17
Il y a deux même fonction "Function Tolerance",
- 1 dans le code de la feuille "Nuance_acier" et
- l'autre dans le module "Tol_infe_tube"
Edit:
J'ai créé une procédure qui fait tourner la fonction pour un test.
Pouvez-vous me donner la valeur des paramètres qui fait que la boîte MsgBox ne fonctionne pas ?
Car j'ai mis des valeurs différentes pour la String Nuance, et la boîte à message fonctionne .. merci
- 1 dans le code de la feuille "Nuance_acier" et
- l'autre dans le module "Tol_infe_tube"
Edit:
J'ai créé une procédure qui fait tourner la fonction pour un test.
Pouvez-vous me donner la valeur des paramètres qui fait que la boîte MsgBox ne fonctionne pas ?
Car j'ai mis des valeurs différentes pour la String Nuance, et la boîte à message fonctionne .. merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
12 déc. 2012 à 15:36
12 déc. 2012 à 15:36
If Cells(26, 1) = "C1" Thenpréférez:
If Cells(26, 1).value = "C1" Then
judoka33
Messages postés
13
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
13 décembre 2012
12 déc. 2012 à 16:43
12 déc. 2012 à 16:43
Bonjour,
J'ai un pb uniquement sur la Msgbox.
Mon prog tourne sans probleme, sauf la msgbox.
Si le paramètre nuance est egal à L290NB ou L415NB ou P235GH ou P355N alors je souhaite avoir une Msgbox "
"preferer L360NB".
J'ai rajouter pour tester la Msgbox & vbCr & "Ligne " & Li pour voir temporairement la valeur prise par Li et voir si on code fonctionne correctement.
Si je met la Msgbox entre le end if et le Next Li, le message box s'affiche pour toutes les valeurs de Li de 26 a 34 meme si je n'ai pas de nuance spécifié.
Dim Li As Long
For Li = 26 To 34 'Li = Li_deb To Li_fin
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
Exit For
End If
MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
Next Li
Je veux donc voir afficher la Msgbox uniquement lorsque pour chaque les nuances sont L290NB ou L415NB ou P235GH ou P355N pour les lignes Li de 26 a 34.
En esperant avoir été clair.
J'ai un pb uniquement sur la Msgbox.
Mon prog tourne sans probleme, sauf la msgbox.
Si le paramètre nuance est egal à L290NB ou L415NB ou P235GH ou P355N alors je souhaite avoir une Msgbox "
"preferer L360NB".
J'ai rajouter pour tester la Msgbox & vbCr & "Ligne " & Li pour voir temporairement la valeur prise par Li et voir si on code fonctionne correctement.
Si je met la Msgbox entre le end if et le Next Li, le message box s'affiche pour toutes les valeurs de Li de 26 a 34 meme si je n'ai pas de nuance spécifié.
Dim Li As Long
For Li = 26 To 34 'Li = Li_deb To Li_fin
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
Exit For
End If
MsgBox "preferer L360NB" & vbCr & "Ligne " & Li
Next Li
Je veux donc voir afficher la Msgbox uniquement lorsque pour chaque les nuances sont L290NB ou L415NB ou P235GH ou P355N pour les lignes Li de 26 a 34.
En esperant avoir été clair.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 déc. 2012 à 17:26
12 déc. 2012 à 17:26
Bonjour, bonjour Heliotte..
D'après ce que je peu comprendre, ta fonction est appelée en mode formule dans une de tes feuille (j'ai pas trouvé où).
De ce fait, les différents affichages de tes TextBox sont appelés chacun par les cellules et ce n'est pas la fonction qui boucle.
Sais pas si j'ai été bien clair ? :o)
Tu dis.
A+
D'après ce que je peu comprendre, ta fonction est appelée en mode formule dans une de tes feuille (j'ai pas trouvé où).
De ce fait, les différents affichages de tes TextBox sont appelés chacun par les cellules et ce n'est pas la fonction qui boucle.
Sais pas si j'ai été bien clair ? :o)
Tu dis.
A+
judoka33
Messages postés
13
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
13 décembre 2012
12 déc. 2012 à 17:51
12 déc. 2012 à 17:51
Bjr,
La msgbox à affiche est tout en bas du module tôle inf tube
La formule est appelle pour calculer le c1 après colonne grise
Je bloque depuis hier, merci pour l'aide par avance
La msgbox à affiche est tout en bas du module tôle inf tube
La formule est appelle pour calculer le c1 après colonne grise
Je bloque depuis hier, merci pour l'aide par avance
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 12/12/2012 à 18:48
Modifié par lermite222 le 12/12/2012 à 18:48
Apparemment tu n'a pas compris mon explication.
Supprime toutes les cellules qui font appels à ta fonction sauf une, tu verra que ton MsgBox ne sera appelé qu'une seule fois.
Autre solution,
Met le recalcul du classeur à Manuel.
Sélectionne une cellule qui contient ta formule Tolerance()
Et valide le recalcul de cette formule, je ne sais plus si c'est Maju+F9 ou Ctrl+F9 sinon, cherche un peu pour le recalcul de la cellule active (me rappel plus bien)
A+
EDIT : où sont situées les formules Tolérance() ????????
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Supprime toutes les cellules qui font appels à ta fonction sauf une, tu verra que ton MsgBox ne sera appelé qu'une seule fois.
Autre solution,
Met le recalcul du classeur à Manuel.
Sélectionne une cellule qui contient ta formule Tolerance()
Et valide le recalcul de cette formule, je ne sais plus si c'est Maju+F9 ou Ctrl+F9 sinon, cherche un peu pour le recalcul de la cellule active (me rappel plus bien)
A+
EDIT : où sont situées les formules Tolérance() ????????
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
12 déc. 2012 à 19:05
12 déc. 2012 à 19:05
Bonsoir judoka33,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Si j'ai bien compris, le "Li" qui vaut 26, 27, 28 .. 34 est un numéro de ligne.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vous voulez comparer le contenu de la cellule avec la chaîne de caractère "Nuance".
Si oui, voilà comment faire:
Si, par contre vous voulez comparer le contenu de la cellule avec les valeurs telle que "L290NB", "L415NB", "P235GH" ou "P355N":
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Si j'ai bien compris, le "Li" qui vaut 26, 27, 28 .. 34 est un numéro de ligne.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vous voulez comparer le contenu de la cellule avec la chaîne de caractère "Nuance".
Si oui, voilà comment faire:
For Li = 26 To 34' admettons que la colonne fixe soit la colonne D If Cells(Li,4) = Nuance Then MsgBox "preferer L360NB" & vbCr & "Ligne " & Li Exit For End If Next i~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Si, par contre vous voulez comparer le contenu de la cellule avec les valeurs telle que "L290NB", "L415NB", "P235GH" ou "P355N":
For Li = 26 To 34' admettons que la colonne fixe soit la colonne D If Cells(Li,4) = "L290NB" Or Cells(Li,4) = "L415NB" Or Cells(Li,4) = "P235GH" Or Cells(Li,4) = "P355N" Then MsgBox "preferer L360NB" & vbCr & "Ligne " & Li Exit For End If Next i~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
judoka33
Messages postés
13
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
13 décembre 2012
13 déc. 2012 à 09:14
13 déc. 2012 à 09:14
Merci,
pour votre aide, je viens de trouver le code qui me convient.
C'est tellement simple que j'ai été chercher trop loin.
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
MsgBox "preferer L360NB"
End If
Sujet clos.
pour votre aide, je viens de trouver le code qui me convient.
C'est tellement simple que j'ai été chercher trop loin.
If Nuance = "L290NB" Or Nuance = "L415NB" Or Nuance = "P235GH" Or Nuance = "P355N" Then
MsgBox "preferer L360NB"
End If
Sujet clos.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
13 déc. 2012 à 11:13
13 déc. 2012 à 11:13
Bonjour judoka33,
Si ok pour toi, mettre en résolu, merci
Si ok pour toi, mettre en résolu, merci