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