Vba else if probleme - VB/VBA/VBS - Programmation
Marsh Posté le 06-02-2009 à 12:12:01
Salut
Alt+F11
F5 sur macro à exécuter
>>>>> Erreur de compilation : variable non définie
Marsh Posté le 06-02-2009 à 12:18:28
Désolé mais je ne comprend pas lorsque j'ai fais F5 cella a exécuté seulement un des if
Merci.
Marsh Posté le 06-02-2009 à 14:10:41
Citation : If A83 = "Script" Then |
Est-ce que A83 est bien le nom d'une variable ?
Si A83 est censé être le contenu de la cellule A83, alors il faut écrire le test comme ceci :
If ThisWorkbook.Sheets("Feuil1" ).Cells(83, 1).Value = "Script" Then |
Marsh Posté le 06-02-2009 à 14:36:05
Merci mais je ne comprend ce morceaux de code pourrais tu m'expliquer s'il te plaît ?
Merci.
Marsh Posté le 06-02-2009 à 15:36:40
Je ne faisais qu'une supposition, mais je me trompe peut-être.
Si A83 est le nom d'une variable alors le code initial est bon.
Si A83 est sensé être le contenu d'une cellule, alors il faudrait récupérer le contenu de la manière que j'ai montrée plus haut (ou d'une autre manière, car il y a souvent plusieurs manières pour faire la même chose).
Marsh Posté le 08-02-2009 à 12:29:55
Bonjour,
Une piste avec le code ci-dessous
'/// Si une condition est vraie, les autres ne sont pas estimées ///
Sub aa()
If [A83] = "Script" Then
Rows("84:85" ).Delete Shift:=xlUp
ElseIf [A84] = "Script" Then
Rows("85:86" ).Delete Shift:=xlUp
ElseIf [A85] = "Script" Then
Rows("86:87" ).Delete Shift:=xlUp
End If
End Sub
'/// Vérifie la condition de toutes les cellules (A85 A84 A83)
'/// et si elle s'avère supprime les lignes concernées
'/// ABSOLUE nécessité de faire du plus grand au plus petit
'/// car si on efface d'abord les lignes 84:85 les lignes en dessous
'/// sont décalées d'un désincrément de 2 lignes
Sub bb()
If [A85] = "Script" Then Rows("86:87" ).Delete Shift:=xlUp
If [A84] = "Script" Then Rows("85:86" ).Delete Shift:=xlUp
If [A83] = "Script" Then Rows("84:85" ).Delete Shift:=xlUp
End Sub
Cordialement.
PMO
Patrick Morange
Marsh Posté le 11-02-2009 à 08:47:53
Désolé je n'ai pas pu répondre plus tôt je te remercie pour ta réponse je vais tester sa.
merci.
Marsh Posté le 06-02-2009 à 11:49:55
bonjour,
J'essaye de me mettre au vba pour effacer des ligne d'un fichier excel de 200 feuille mais mon code ne marche pas
If A83 = "Script" Then
Rows("84:85" ).Select
Selection.Delete Shift:=xlUp
ElseIf A84 = "Script" Then
Rows("85:86" ).Select
Selection.Delete Shift:=xlUp
ElseIf A85 = "Script" Then
Rows("86:87" ).Select
Selection.Delete Shift:=xlUp
Else
End If
Je pense que mon problème viens du if then else mais je ne vois pas quoi.
Pouvez vous m'aider?
Merci