Macro saut de ligne si vide
Résolu/Fermé
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
-
22 juil. 2013 à 18:37
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 23 juil. 2013 à 15:30
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 23 juil. 2013 à 15:30
A voir également:
- Macro saut de ligne si vide
- Site de vente en ligne particulier - Guide
- Saut de ligne excel - Guide
- Partage de photos en ligne - Guide
- Apparaitre hors ligne instagram - Guide
- Macro word - Guide
2 réponses
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
23 juil. 2013 à 09:24
23 juil. 2013 à 09:24
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.
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.
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
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
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
1
23 juil. 2013 à 11:46
23 juil. 2013 à 11:46
On ne peut pas combiner les deux macros ?
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
23 juil. 2013 à 13:11
23 juil. 2013 à 13:11
si tu peux combiner de cette manière :
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
else
Rows(i).Delete
End If
Next i
End Sub
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
else
Rows(i).Delete
End If
Next i
End Sub
23 juil. 2013 à 09:28
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
23 juil. 2013 à 11:04
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!
23 juil. 2013 à 11:07
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
23 juil. 2013 à 11:11
Au fait je met le code sur un module VBA je met un bouton sur la feuille qui m'interesse et après j'affecte la macro au bouton et quand je clique deessus rien ne marche ;/
c peut etre pas la bonne procédure ???!
Merciii
23 juil. 2013 à 12:53