Probleme condition If

beubax1 Messages postés 21 Date d'inscription jeudi 11 août 2011 Statut Membre Dernière intervention 22 février 2013 - 21 févr. 2013 à 21:02
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 22 févr. 2013 à 11:58
Salut à tous

J'ai un problème sur une condition If. j'ai une partie qui ne se fait pas.
J'ai la condition qui fonctionne bien jusqu’à la fin sans broncher il ya à juste une partie qui ne se fait pas dans le cas ou la condition est vrai
Voici le code == >

Private Sub CommandButton4_Click()

If ComboBox4 = "OR" Then
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range("B2").Select

Sheets("StockRéel2013").Range("I2").Value = ComboBox3.Column(0)
Sheets("StockRéel2013").Range("B2").Value = ComboBox4.Column(0)
Sheets("StockRéel2013").Range("E2").Value = TextBox2.Value
Sheets("StockRéel2013").Range("F2").Value = TextBox5.Value
Sheets("StockRéel2013").Range("G2").Value = TextBox9.Value
Sheets("StockRéel2013").Range("J2").Value = TextBox7.Value
Sheets("StockRéel2013").Range("K2").Value = TextBox8.Value
Sheets("StockRéel2013").Range("M2").Value = ComboBox5
Sheets("StockRéel2013").Range("N2").Value = TextBox10.Value
Sheets("StockRéel2013").Range("A2").Value = TextBox12.Value


Dim num As Integer

Range("C2").Select
num = Range("C3").Value
num = num + 1
Range("C2").Value = num



'c'est à partir d'ici que ça ne fonctionne pas jusqu’à Else qui fonctionne bien

ActivateSheet.IDMACHINES
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range("B2").Select
Sheets("IDMACHINES").Range("L7").Value = ComboBox3.Column(0)
Sheets("IDMACHINES").Range("B7").Value = ComboBox4.Column(0)
Sheets("IDMACHINES").Range("E7").Value = TextBox2.Value
'Sheets("IDMACHINES").Range("F7").Value = TextBox5.Value pas besoin
Sheets("IDMACHINES").Range("M7").Value = TextBox9.Value
'Sheets("IDMACHINES").Range("J7").Value = TextBox7.Value pas besoin
'Sheets("IDMACHINES").Range("K7").Value = TextBox8.Value pas besoin
'Sheets("IDMACHINES").Range("M7").Value = ComboBox5 pas besoin
'Sheets("IDMACHINES").Range("N7").Value = TextBox10.Value pas besoin
Sheets("IDMACHINES").Range("A7").Value = TextBox12.Value
Range("C7").Value = Sheets("StockRéel2013").Range("C2").Value

' et la ça refonctionne

Else
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range("B2").Select

Sheets("StockRéel2013").Range("I2").Value = ComboBox3.Column(0)
Sheets("StockRéel2013").Range("B2").Value = ComboBox4.Column(0)
Sheets("StockRéel2013").Range("E2").Value = TextBox2.Value
Sheets("StockRéel2013").Range("F2").Value = TextBox5.Value
Sheets("StockRéel2013").Range("G2").Value = TextBox9.Value
Sheets("StockRéel2013").Range("J2").Value = TextBox7.Value
Sheets("StockRéel2013").Range("K2").Value = TextBox8.Value
Sheets("StockRéel2013").Range("M2").Value = ComboBox5
Sheets("StockRéel2013").Range("N2").Value = TextBox10.Value

Range("C2").Select
num = Range("C3").Value
num = num + 1
Range("C2").Value = num

End If

EntrerNewArticle.Hide
End Sub


Si vous avez une idée pour m'orienter, merci d'avance

11 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
21 févr. 2013 à 21:29
Pense à utiliser le 3e bouton à droite pour mettre un peu de couleur à ton code et utilise l'indentation pour clarifier le tout...


Dim num As Integer 

Range("C2").Select 
num = Range("C3").Value 
num = num + 1 
Range("C2").Value = num


aussi bien écrire
Range("C2") = Range("C3") + 1


Et ceci
ActivateSheet.IDMACHINES 'Kesssé ?
Plutôt Sheets("IDMACHINES").activate, j'imagine...


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
beubax1 Messages postés 21 Date d'inscription jeudi 11 août 2011 Statut Membre Dernière intervention 22 février 2013
21 févr. 2013 à 21:53
ok pour Range C2

Et pour Sheets ... activate c se que j avais fait au début mais ça ne change rien
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
21 févr. 2013 à 22:18
Bonjour,
Je continue à voir des lignes de ce genre :
Sheets("IDMACHINES").Range("L7").Value = ComboBox3. Column(0)

Alors que (ton autre discussion), j'ai pris la peine de t'exposer que la propriété column attendait deux paramètres (celui de la colonne et celui de la ligne).
Et je me suis même efforcé de te montrer un exemple super-clair !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
21 févr. 2013 à 22:58
Et ça ! :
ActivateSheet.IDMACHINES

C'est quoi, encore ? Ecrit "d'instinct" ? Inventé de toutes pièces ? Essaye de voir si cela peut exister (ton aide VBA ! ton AIDE VBA ! TON AIDE VBA !)
et tu nous dis :
c'est à partir d'ici que ça ne fonctionne pas jusqu’à Else qui fonctionne bien

sans nous souffler le moindre mot sur le fait que tu as un magnifique message d'erreur qui dénonce cette ligne.
Tu disais hier être fatigué.
C'est maintenant moi qui le deviens.
Bonne chance dans tes tâtonnements en dehors des clous (les bases).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 févr. 2013 à 01:05
Salut

Si tu as, quelque part dans ton code, des "On Error Resume Next", supprime-les tout de suite : ils te masquent les erreurs et tu passes à côté des problèmes.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
Utilisateur anonyme
22 févr. 2013 à 04:42
Bonjour,

If ComboBox4 = "OR" Then 


Trpp se fier à l'interprète (au compilateur) pour boucher les trous dûs à la paresse peut finir par causer des problèmes.
0
Utilisateur anonyme
22 févr. 2013 à 04:52
Bonjour,

Je suppose que je fais juste renchérir sur ce que d'autres ont déjà dû te dire.

Pourquoi cette manie de sélectionner des cellules et de ne pas utiliser cette sélection ? Cela donne juste de l'interprétation inutile et une augmentation du temps d'exécution.
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
22 févr. 2013 à 09:15
Bonjour,

Et moi je rajouterai le fait de renommer tes controles... textbox2 combobox3 etc etc ce n'est pas très parlant et si tu dois revenir sur le code plus tard il sera difficile de t'y retrouver..

L'expérience, c'est une connerie par jour, mais jamais la même..
0
beubax1 Messages postés 21 Date d'inscription jeudi 11 août 2011 Statut Membre Dernière intervention 22 février 2013
22 févr. 2013 à 09:43
Bonjour,
désolé Ucfoutu mais comme ça marché comme ça, je l'ai laissé car je manque vraiment de temps. pour " ActivateSheet.IDMACHINES ", je ne l'ai pas inventer je l'ai trouver sur un forum comme je disais plus au début j'avais bien mis " Sheets("IDMACHINES").activate " mais le code n'allait pas au bout c'est pourquoi j'ai été cherché autre chose qui est de la M.... à première vue. Je change ça tout de suite
Encore une fois désolé mais j'ai AUCUN Msg. d'erreur, le code va jusqu'au bout sans broncher il y juste une partie qui ne se fait pas, c tout. L'explication de "Jack" pourrai l'expliquer mais je ne vois pas de "On Error Resume Next" à moins que cela peu se planquer je ne sais où???

L' interprète n'est pas forcement de la paresse, bon forcément un peu, mais surtout un manque de connaissance. je n'ai pas non plus inventé "If ComboBox4 = "OR" Then " je l'ai récupéré sur l'aide VBA. par contre pour les sélections de cellules je suis entièrement d'accord avec toi, c'est dû à l'interprète et à de la fainéantise de ma part de les enlever sans me douter de ta remarque sur l'augmentation du temps d'exécution. Je change ça tout de suite.

Voici le code avec les 2/3 modif. mais ça ne change pas mon problème :

Private Sub CommandButton4_Click()

If ComboBox4 = "OR" Then
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Sheets("StockRéel2013").Range("I2").Value = ComboBox3.Column(0, listindex0)
Sheets("StockRéel2013").Range("B2").Value = ComboBox4.Column(0, listindex0)
Sheets("StockRéel2013").Range("E2").Value = TextBox2.Value
Sheets("StockRéel2013").Range("F2").Value = TextBox5.Value
Sheets("StockRéel2013").Range("G2").Value = TextBox9.Value
Sheets("StockRéel2013").Range("J2").Value = TextBox7.Value
Sheets("StockRéel2013").Range("K2").Value = TextBox8.Value
Sheets("StockRéel2013").Range("M2").Value = ComboBox5
Sheets("StockRéel2013").Range("N2").Value = TextBox10.Value
Sheets("StockRéel2013").Range("A2").Value = TextBox12.Value

Dim num As Integer
Range("C2") = Range("C3") + 1

Sheets("IDMACHINES").Activate

Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Sheets("IDMACHINES").Range("L7").Value = ComboBox3.Column(0, listindex0)
Sheets("IDMACHINES").Range("B7").Value = ComboBox4.Column(0, listindex0)
Sheets("IDMACHINES").Range("E7").Value = TextBox2.Value
'Sheets("IDMACHINES").Range("F7").Value = TextBox5.Value pas besoin
Sheets("IDMACHINES").Range("M7").Value = TextBox9.Value
'Sheets("IDMACHINES").Range("J7").Value = TextBox7.Value pas besoin
'Sheets("IDMACHINES").Range("K7").Value = TextBox8.Value pas besoin
'Sheets("IDMACHINES").Range("M7").Value = ComboBox5 pas besoin
'Sheets("IDMACHINES").Range("N7").Value = TextBox10.Value pas besoin
Sheets("IDMACHINES").Range("A7").Value = TextBox12.Value
Range("C7").Value = Sheets("StockRéel2013").Range("C2").Value

Else
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Sheets("StockRéel2013").Range("I2").Value = ComboBox3.Column(0, listindex0)
Sheets("StockRéel2013").Range("B2").Value = ComboBox4.Column(0, listindex0)
Sheets("StockRéel2013").Range("E2").Value = TextBox2.Value
Sheets("StockRéel2013").Range("F2").Value = TextBox5.Value
Sheets("StockRéel2013").Range("G2").Value = TextBox9.Value
Sheets("StockRéel2013").Range("J2").Value = TextBox7.Value
Sheets("StockRéel2013").Range("K2").Value = TextBox8.Value
Sheets("StockRéel2013").Range("M2").Value = ComboBox5
Sheets("StockRéel2013").Range("N2").Value = TextBox10.Value

Range("C2") = Range("C3") + 1

End If

EntrerNewArticle.Hide
End Sub

Merci pour vos remarquesss
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
22 févr. 2013 à 11:13
Et qu'est maintenant listindex0 ?
Et si c'est une variable : où a-t-elle été déclarée ? Où a-t-elle été initialisée ?
Si non initialisée : listindex0 0>> et se réfère donc systématiquement à la première ligne de la combo. A quoi servirait alors une combo si l'on n'en lit systématiquement que la toute 1ère ligne, quelle que puisse être la sélection faite ?
Tu peux expliquer cette étrange "démarche" ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
22 févr. 2013 à 11:58
Et puis : juste parce que j'ai des principes et que j'attends des autres la même rigueur === >>
Tu as écrit :
pour " ActivateSheet.IDMACHINES ", je ne l'ai pas inventer je l'ai trouver sur un forum

J'attends de toi que tu montres où tu as "trouvé" cette "chose", ainsi écrite.
Si tu ne le fais pas, je te laisserai totalement tomber (question de principe, hein ...)
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Rejoignez-nous