Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

boucle sur une colone & condition si en vba

  • Initiateur de la discussion Initiateur de la discussion fifi56
  • 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 !

fifi56

XLDnaute Junior
bonjour

j'ai une erreur dans mon code vba suivant que je n'arrive pas a résoudre


Code:
'For Each cell In Range("C1:C" & ligne)

       ' If cell = nombre Then
       '   calcul = "E" & ligne
      '  End If
        
'Next cell



je parcours la colonne C , si la valeur de C est egale a la valeur de " nombre "
alors je voudrais
que "calcul " est la valeur de la cellule (E + numero de ligne ) E1 ou e2 ou e3 ect ...



ensuite je colle la valeur de "calcul " en L1 ( a la place normal j’exécute une autre macro mais si nous en avons pas besoin )
 

Pièces jointes

Re : boucle sur une colone & condition si en vba

Bonjour à tous

fifi56
Si j'ai compris la question, voici une proposition
VB:
Sub macro()
Dim calcul$, cell As Range, nombre
nombre = Sheets("Feuil1").Cells(3, "D").Value
With Sheets("Feuil2")
    For Each cell In .Range(.Cells(1, "C"), .Cells(Rows.Count, "C").End(xlUp))
        If cell = nombre Then
        calcul = calcul & ";" & "E" & cell.Row
        End If
    Next cell
    'destination
    .[L1] = Mid(calcul, 2, 9 ^ 9)
End With
End Sub
 
Re : boucle sur une colone & condition si en vba

Bonjour Staple1600, fifi56

Sans savoir concrètement le besoin ni tout compris au besoin, une proposition pour que la boucle fonctionne:

Code:
Sub macro()
'
 Dim calcul As String
 Dim ligne As Integer, nombre As Integer, DerLig As Integer

 nombre = Worksheets("Feuil1").Cells(3, 4).Value 'colonne D !

 With Worksheets("Feuil2")
 DerLig = .Range("C" & Rows.Count).End(xlUp).Row

 For ligne = 1 To DerLig
    If .Range("C" & ligne).Value = nombre Then
        calcul = .Range("E" & ligne).Value
    End If
 Next
    
 End With

'calcul = [e2]
' destination
'[l1] = calcul

End Sub

A+
 
Re : boucle sur une colone & condition si en vba

Bonjour Paf 😉


Nous sommes deux à boucler et deux à n'être pas sur d'avoir compris le résultat à obtenir.
(Pourquoi tu as commenter le [L1] ?)
 
Re : boucle sur une colone & condition si en vba

bonjour a vous 2 Staple1600, Paf

et merci pour vos reponses

oui pas tjs evident d'expliquer ce que l'on souhaite faire

Staple1600 j'ai essaye ton code

j'ai modifier cette ligne

calcul = "E" & cell.Row

'destination
[L1] = calcul
MsgBox (" on verifie ")

Next cell


voila je crois c'est bon ( avec les modifs )



en gros je voulais avoir le numero de la cellule
pour le reutiliser ensuite
 
Dernière édition:
Re : boucle sur une colone & condition si en vba

Re

fifi56
Si tu pouvais donner plus de détails ou mieux ajouter un onglet RESULTAT A OBTENIR
(sur lequel tu auras mis manuellement ce tu souhaites obtenir)
On pourrait sans doute mieux t'aider à résoudre ta question.
(
 
Re : boucle sur une colone & condition si en vba

Je commence a être un peu perdu dans mon code 😱
..

j'ai pris le code de " pat"

ça fonctionne mais cela me crée un autre problème

je vous joint a nouveau le fichier
( le problème est que la message box affiche le dernier nom plusieurs fois a chaque fois qu'il verifie si la condition est rempli ou pas et cela me pose souci ! )


a la place de la message box j'ai une grosse macro qui se déclenche ( et qui est longue a exécuter )
et que je risque d’exécuter autant de fois ....

pas encore tres clair comme explication .........😱
 

Pièces jointes

Dernière édition:
Re : boucle sur une colone & condition si en vba

Re

à Staple1600 : j'avais commenté les lignes dont je ne comprenais pas l'utilité

à fifi56

Sans savoir ce qu'attend la grosse macro, le premier code fait apparaitre dans une Message Box les prénoms correspondant à la limite déterminée en feuille1, le deuxième code affiche la même liste en colonne L
Code:
Sub macro1()
 Dim calcul As String
 Dim ligne As Integer, nombre As Integer, DerLig As Integer

 nombre = Worksheets("Feuil1").Cells(3, 4).Value 'colonne D !

 With Worksheets("Feuil2")
 DerLig = .Range("C" & Rows.Count).End(xlUp).Row

 For ligne = 1 To DerLig
    If .Range("C" & ligne).Value = nombre Then
        calcul = calcul & Chr(10) & .Range("E" & ligne).Value
    End If
 Next
 MsgBox (calcul)
 End With
End Sub

Code:
Sub macro1()
 Dim calcul As String
 Dim ligne As Integer, nombre As Integer, DerLig As Integer, x As Integer

 nombre = Worksheets("Feuil1").Cells(3, 4).Value 'colonne D !

 With Worksheets("Feuil2")
 DerLig = .Range("C" & Rows.Count).End(xlUp).Row

 For ligne = 1 To DerLig
    If .Range("C" & ligne).Value = nombre Then
        x = x + 1
        .Range("L" & x).Value = .Range("E" & ligne).Value
    End If
 Next
 End With
End Sub

A+
 
Re : boucle sur une colone & condition si en vba [ resolu ]

bonsoir et merci a vous 2 pat et Staple1600
pour votre aide je ne suis pas tjs très clair dans mes explications et il faut suivre mon raisonnement


Pat ta toute première macro était bonne ( j'avais juste un souci de vérification de la dernière condition )
je vais régler cela , pas de souci

je pourras d'ailleurs associé les macro 1 et 3 🙂


( ma grosse macro va entre autres choses récupérer des infos dans d'autres classeurs et page web )
 
- 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
21
Affichages
852
Réponses
15
Affichages
718
Réponses
5
Affichages
474
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…