boucle sur une colone & condition si en vba

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

  • Classeur.xlsm
    15.6 KB · Affichages: 21
  • Classeur.xlsm
    15.6 KB · Affichages: 26
  • Classeur.xlsm
    15.6 KB · Affichages: 21

Staple1600

XLDnaute Barbatruc
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
 

Paf

XLDnaute Barbatruc
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+
 

fifi56

XLDnaute Junior
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:

Staple1600

XLDnaute Barbatruc
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.
(
 

fifi56

XLDnaute Junior
Re : boucle sur une colone & condition si en vba

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

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 .........:eek:
 

Pièces jointes

  • Classeur1.xlsm
    17.5 KB · Affichages: 14
  • Classeur1.xlsm
    17.5 KB · Affichages: 23
  • Classeur1.xlsm
    17.5 KB · Affichages: 17
Dernière édition:

Paf

XLDnaute Barbatruc
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+
 

fifi56

XLDnaute Junior
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 )
 

Discussions similaires

Réponses
21
Affichages
328
Réponses
1
Affichages
187
Réponses
0
Affichages
165

Statistiques des forums

Discussions
312 379
Messages
2 087 761
Membres
103 661
dernier inscrit
fcleves