Comment faire une boucle for next permettant de venir tester toutes les cellules d'une colonne?
Comment faire une boucle for next permettant de venir tester toutes les cellules d'une colonne?
bonjour,
un exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub colonne() Dim cel As Range For Each cel In Range("b:b") If cel.Value = 12 Then MsgBox "ok" Next End Sub
OK pour ton exemple sa marche!
Je voulais juste savoir, quand il affiche la msgBox il l'affiche quand il passe devant la cellule qui est égale à 12? et non à la fin de la macro?
Parce que moi l'idée, c'est que je test si les cellules de la colonne "H" sont égales à la date. J'utilise donc:
Moi je ne voudrai pas que se soit une msgBox qui s'affiche, mais que sa copie les cellules des colonnes A, B, C, D, E, F, G, et H et que sa les colle dans un autre classeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub colonne() Dim cel As Range For Each cel In Range("h:h") If cel.Value = Date Then MsgBox "ok" Next End Sub
C'est possible avec cette méthode du for each cellule in selection?
Merci à toi
SAlut
Essais comme ca
A++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub colonne() Dim cel As Range For Each cel In Sheets("Feuil3").Range("h:h") If cel.Value = Date Then 'On copi les cellules dans une autre feuil 'Je concidere que la ligne 1 de la feuil2 contient des entete de colonne (nom, date,prenom, .....) 'ici je ne sais pas si A est toujours rempli With Sheets("Feuil2").Range("H1").End(xlDown).Offset(0, -7) 'si A toujours rempli mettre With Sheets("Feuil2").Range("A1").End(xlDown) à la place de cette ligne Sheets("Feuil3").Range(Cells(cel.Row, "A"), cel).Copy .Address End With End If Next End Sub
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et SeulTutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Salut et merci pour ton aide mais j'ai une erreur avec ta méthode!
J'avais pensé à faire comme ça:
Mais j'ai un problème aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Sub colonne() Dim cel As Range For Each cel In Range("h:h") If cel.Value = Date Then ActiveCell.Select ActiveCell.Offset(0, -1).Select ActiveCell.Offset(0, -2).Select ActiveCell.Offset(0, -3).Select ActiveCell.Offset(0, -4).Select ActiveCell.Offset(0, -5).Select ActiveCell.Offset(0, -6).Select ActiveCell.Offset(0, -7).Select Selection.Copy Set cellule = Sheets("Feuil1").Range("a1") Do Until IsEmpty(cellule) Set cellule = cellule.Offset(1, 0) Loop Sheets("Feuil1").Select cellule.Select ActiveSheet.Paste Application.CutCopyMode = False End If Next End Sub
En fait l'élément qui me manque c'est comment une fois que j'ai détecté une cellule avec la date système lui dire de faire la celection de cette ligne de A à H
J'ai peut-être mal exprimé ce que je voulais faire dite moi si c'est le cas!![]()
Re
Cette fois c'est testé
A++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub colonne() Dim cel As Range For Each cel In Worksheets("Feuil3").Range(Worksheets("Feuil3").Range("H2"), Worksheets("Feuil3").Cells(Rows.Count, "H").End(xlUp)) If cel.Value = CDate("01/06/1980") Then Worksheets("Feuil3").Range("A" & cel.Row & ":H" & cel.Row).Copy Sheets("Feuil2").Cells(Rows.Count, "H").End(xlUp).Offset(1, -7) End If Next End Sub
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et SeulTutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Partager