Bonjour à tous,
je suis débutant en VBA, je vais essayer de vous expliquer mon problème,
j'ai besoin d'une macro en vba pour excel qui :
- (scan chaque lignes jusqu'à la 175ème de la colonne K) et SI elle trouve une case vide dans la colonne K, elle doit copier toute la ligne vers une nouvelle feuille (sheet), ensuite le script doit continuer son scan, jusqu'à trouver une prochaine case vide, ou il devra de nouveau sélectionner toute la ligne et la coller à la suite dans la nouvelle feuille.
je vais vous donner quelques exemples qui ne marche pas chez moi, mais peut être que ce la vous aidera à mieux comprendre.
OU encore une autre exmple que j'ai testé :
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 Sub extractvisiteurs() Dim ligne As Integer ligne = 1 Dim sourcecell As String Sheets(Visiteurs).Select Range("K2").Select sourcecell = ActiveCell.Address If (ligne < 175) Then If IsEmpty(sourcecell) Then ActiveCell.EntireRow.Select Selection.Copy Sheets("RESTE").Select Range("B2").Select Cells(Rows.Count, 1).End(xlUp)(2).Select ActiveSheet.Paste End If Sheets(Visiteurs).Select Range(sourcecell).Select ActiveCell.Offset(0, 1).Select sourcecell = ActiveCell.Value ligne = ligne + 1 End If end sub
J'ai aussi essayé ce code qui scanne toute la colonne K mais qui ne copie colle rien dans la feuille RESTE...
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 Sub extractvisiteurs() Dim cell As Range Dim lastline As Integer lastline = Sheets("RESTE").Range("A65536").End(xlUp).Row + 1 Sheets("Visiteurs").Select For Each cell In Range("K2:K175") If cellvalue = "" Then Sheets("Visiteurs").Cells(4, 1).EntireRow.Copy Sheets("RESTE").Select Sheets("RESTE").Cells(lastline, 1).EntireRow.Select ActiveSheet.Paste Else End If Next cell End Sub
aucun de ces codes ne marche bien
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 Sub extractvisiteurs() Dim sourcecell As Integer Range("K2").Select sourcecell = ActiveCell.Value Celloffset = ActiveCell.Offset Dim cell As Range Dim lastline As Integer lastline = Sheets("RESTE").Range("A65536").End(xlUp).Row + 1 Sheets("Visiteurs").Select For Each cell In Range("K2:K175") If sourcecell = 0 Then Sheets("Visiteurs").Cells(sourcecell).EntireRow.Copy Sheets("RESTE").Select Sheets("RESTE").Cells(lastline, 1).EntireRow.Select ActiveSheet.Paste Range(sourcecell).Select ActiveCell.Offset(ActiveCell.Offset, 1).Select sourcecell = ActiveCell.Value Else cell.Offset(sourcecell, 0).Select ActiveCell.Offset(1, 0).Select Celloffset = ActiveCell.Offset End If Next cell End Sub
SVP aidez moi je suis débutant et je galère depuis des jours sur ce truc :'( !
Merci d'avance ! @ bientôt !
Partager