Excel-Copier si cellule pleine

Résolu
EmilieM Messages postés 22 Statut Membre -  
 visiteur -
Bonjour,

Je souhaiterai savoir si il est possible de faire une macro ou autre afin de ne copier que les cellules pleines.
J'ai une colonne comportant des valeurs mais pas dans toutes les cellules et je souhaiterai copier dans une autre colonne que les cellules pleines et à la suite les unes des autres.

Quelqu'un aurait il une petite idée?

Emilie.

6 réponses

Utilisateur anonyme
 
re,

une petite remarque :
si tu ne veux pas voir toutes les "animations" de copies des cellules, surtout si tu en as beaucoup, tu peux ajouter la ligne suivante juste avant la déclaration des variables (i.e. les lignes avec Dim) :
Application.ScreenUpdating = False
2
visiteur
 
tu m'as sauvé la vie mdr
0
Utilisateur anonyme
 
Salut,

je ne sais pas si cela va te convenir, mais je te propose quand même.

tu peux filtrer la colonne en décochant (Vides).
les cellules vides de la colonne ne seront donc plus visibles.
0
EmilieM
 
Salut,

Non cela ne convient pas mais merci quand méme.
Le probléme est que dans le cas que tu me proposes cela me supprime les lignes ne contenant les cellules vides et du coup je me retrouve avec un décallége au niveau des lignes passant de A2 à A45 par exemple or cela n'est pas possible car aprés je reprend c'est données pour des calculs.
Donc au final il me faudrait une macro qui décale ou supprime les cellules vides.

Emilie
0
Utilisateur anonyme
 
Salut,

cette fois-ci je te propose une macro!
je l'ai testé et elle fonctionne.

pour ma macro, j'ai considéré que tu travaillais sur la Feuil1 et que tu voulais copier les cellules non vides de la colonne A vers la colonne B.
je te laisse adapter et optimiser selon ton cas.

Sub copie()

Dim cellule As Range
Dim Ligne As String
For Each cellule In Worksheets("Feuil1").Range("A1:A65536")
If Not IsEmpty(cellule) Then
If IsEmpty(Worksheets("Feuil1").Range("B65536").End(xlUp)) Then
Worksheets("Feuil1").Range("B65536").End(xlUp).Select
cellule.Copy Worksheets("Feuil1").Range("B65536").End(xlUp)
Else
Ligne = Worksheets("Feuil1").Range("B65536").End(xlUp).Row
Range("B" & Ligne + 1).Select
cellule.Copy Worksheets("Feuil1").Range("B" & Ligne + 1)
End If
End If
Next cellule

End Sub


Comme l'a dit le grand philosophe Mick Jagger : "Tu ne peux pas toujours avoir ce que tu veux"
Help me to help you!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
EmilieM Messages postés 22 Statut Membre
 
Merci beaucoup cela fonctionne parfaitement.

Emilie
0
Utilisateur anonyme
 
de rien ^^
ciao ;-)
0