Macro saut de ligne si vide
Résolu
JANGO5
Messages postés
98
Statut
Membre
-
melanie1324 Messages postés 1561 Statut Membre -
melanie1324 Messages postés 1561 Statut Membre -
Bonjour,
Ma colonne A cotient des valeurs et des vides
Sur ma colonne B je veux reprendre ces valeurs dans l'ordre mais en sutant un eligne à chaque fois ou il ya un vide dans la colonne A
en gros je veux avoir une colonne B sans vides (B=A sans les vides)
ça urge :/
Mercii:)
Ma colonne A cotient des valeurs et des vides
Sur ma colonne B je veux reprendre ces valeurs dans l'ordre mais en sutant un eligne à chaque fois ou il ya un vide dans la colonne A
en gros je veux avoir une colonne B sans vides (B=A sans les vides)
ça urge :/
Mercii:)
2 réponses
-
Bonjour,
Pas besoin de macro, suit les étapes :
tu mets un filtre de ta colonne A ou tu sélectionnes tout sauf les vides.
Tu copies toutes les cellules.
Tu filtre de nouveau la colonne A pour avoir tout
tu te mets dans la colonne B et tu colles
Normalement, tu as ta colonne A sans les vides.-
si tu tiens à avoir une macro :
sub colAsansvide ()
a=2 'la macro commence à la ligne 2 de la colonne A
b=2'la macro collera à partir d ela ligne 2 de la colonne B
do while a = 60000 'la macro tournera jusqu'à la 60000 lignes
if cells(a,1) <>"" then 'si la cellule de la ligne a et colonne 1 est non vide alors
cells(b,2) = cells(a,1) 'la cellule de la ligne b colonne 2 = cellule de la ligne a colonne 1
b=b+1 'la prochaine copie se fera sur la ligne suivante
end if 'fin du si
a=a+1 'on passe à la ligne suivante de la colonne A
loop 'permet de retourner à do while
end sub -
Bonjour,
Au fait oui je tiens à la macro
donc dans mon cas ça donne ça :
Sub colAsansvide()
AQ = 2 'la macro commence à la ligne 2 de la colonne AQ
AR = 2 'la macro collera à partir de la ligne 2 de la colonne AR
Do While A = 60000 'la macro tournera jusqu'à la 60000 lignes
If Cells(AQ, 44) <> "" Then 'si la cellule de la ligne AQ et colonne 44 est non vide alors
Cells(AR, 45) = Cells(AQ, 44) 'la cellule de la ligne AR colonne 45 = cellule de la ligne AQ colonne 44
AR = AR + 1 'la prochaine copie se fera sur la ligne suivante
End If
AQ = AQ + 1 'on passe à la ligne suivante de la colonne AQ
Loop
End Sub
j'ai mis ça dans un module et quand j'execute il ne se passe rien ?!!!!
Help! -
non c'est pas bon, voici le bon code :
Sub colAsansvide()
AQ = 2 'la macro commence à la ligne 2 de la colonne AQ
AR = 2 'la macro collera à partir de la ligne 2 de la colonne AR
Do While A = 60000 'la macro tournera jusqu'à la 60000 lignes
If Cells(AQ, 43) <> "" Then 'si la cellule de la ligne AQ et colonne 43 est non vide alors
Cells(AR, 44) = Cells(AQ, 43) 'la cellule de la ligne AR colonne 44 = cellule de la ligne AQ colonne 44
AR = AR + 1 'la prochaine copie se fera sur la ligne suivante
End If
AQ = AQ + 1 'on passe à la ligne suivante de la colonne AQ
Loop
End Sub -
-
-
-
Bonjour,
Voilà le cézame pour transférer tes données sur la colonne B
Sub Transfert()
Nb_Lgn = Cells(Rows.Count, 1).End(xlUp).Row
x = 1
For i = 1 To Nb_Lgn
Info_Cell = Cells(i, 1)
If Info_Cell <> "" Then
Cells(x, 2) = Cells(i, 1)
x = x + 1
End If
Next i
End Sub
Après si tu souhaites supprimer les lignes pour lesquels la cellule A est vide alors tu peux utiliser la macro ci dessous.
Sub Sup_Blank()
Nb_Lgn = Cells(Rows.Count, 1).End(xlUp).Row
For i = Nb_Lgn To 1 Step -1
Info_Cell = Cells(i, 1)
If Info_Cell = "" Then
Rows(i).Delete
End If
Next i
End Sub