XL 2013 Fonction SI avec boucle en VBA

  • Initiateur de la discussion Initiateur de la discussion geekpok
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

geekpok

XLDnaute Nouveau
Bonjour,

Je souhaiterais faire une macro en VBA qui dit que si il y a rien dans la cellule Q2 alors de mettre la valeur de X2 et que si il y a une valeur déjà inscrite dans Q2 de ne rien faire.
Je souhaiterais ensuite quel effectue une boucle pour vérifier toutes les cellules de la colonne Q.
Voici ce que j'ai essayé fonctionne sur la cellule Q2 met je n'arrive pas à bouclé sur les autres cellules Q3,Q4...

Je n'ai pas mis mon fichier en pièce jointe car il y a beaucoup de donné et macro dedans pour l’alléger

Sub test3()

Dim cellule As Range

For Each cellule In Range("Q:Q")

If Range("Q2") = "" Then ' => SI condition validée ALORS
Range("Q2") = Range("X2")

Next cellule

End If

End Sub
 
Merci j'ai une erreur Next without For
macro.jpg
 
Il manque un "End If" (je n'avais pas vérifié) :

Code:
  For Each cellule In Range("B1", Cells(Rows.Count, 2).End(xlUp))
    If Range("Q2") = "" Then ' => SI condition validée ALORS
      Range("Q2") = Range("X2")
    End If
  Next cellule

Daniel
Bonjour à tous,
Non seulement le Next cellule était mal placé ( avant le End if )
VB:
For Each cellule In Range("Q:Q")

If Range("Q2") = "" Then ' => SI condition validée ALORS
Range("Q2") = Range("X2")

Next cellule

End If
Erreur corrigée !
Bonne journée à tous !
 
Je n'ai plus le message d'erreur mais il ne fait pas la boucle dans la cellule Q3 puis Q4 ..

Sub test3()

Dim cellule As Range

For Each cellule In Range("Q:Q")

If Range("Q2") = "" Then ' => SI condition validée ALORS
Range("Q2") = Range("X2")

End If

Next cellule

End Sub
 
Re,
Bon sang, tu n'as rien compris !
Tu fais une analyse de la cellule Q2 !
Il n'y a pas besoin de vérifier toute la colonne Q !
Essai ceci qui revient à la même solution :
VB:
Sub test3()

Dim cellule As Range
If Range("Q2") = "" Then ' => SI condition validée ALORS
Range("Q2") = Range("X2")
End If
End Sub
 
Essaie :

VB:
  For Each cellule In Range("X1", Cells(Rows.Count, "X").End(xlUp))
    If Cells(cellule.Row, "Q") = "" Then ' => SI condition validée ALORS
      Cells(cellule.Row, "Q") = Range("X2")
    End If
  Next cellule

Daniel
Bonjour danielco,
Dans ce code il n'est plus question de la cellule Q2 !
Donc Q2 ne servait à rien !
Erreur de geekpod qui c'est mal exprimé !
Bonne journée !
 
Pfff ! des fois, c'est dur, le matin...

VB:
  For Each cellule In Range("X2", Cells(Rows.Count, "X").End(xlUp))
    If Cells(cellule.Row, "Q") = "" Then ' => SI condition validée ALORS
      Cells(cellule.Row, "Q") = cellule
    End If
  Next cellule

Ca doit être correct, cette fois.

Daniel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
620
Réponses
72
Affichages
1 K
Retour