Insérer cellules pleines de plusieurs colonnes dans nouvelle feuille

P

petitclaude

Guest
Bonjour à tous,

J’ai 6 colonnes de 300 lignes chacune voir plus, chaque ligne de chaque colonne va ensemble.

J’ai des lignes qui sont complète et d’autres non.(mise à jour ts les jours)

J’ai donc effectuer la fonction SI(ESTVIDE)
Ce qui me donne maintenant 3 nouvelles colonnes à coté de mes 6.
Dans ces 3 colonnes il y à maintenant des lignes vides et d’autres pleines. (Complète et pas complète)

Pour y voir plus clair j’aimerais que les lignes qui sont pleines (ce sont celle qui ne sont pas complètes) soit automatiquement insérer dans une nouvelle feuille (sur 3 colonnes) l’une derrière l’autre.

En espérant que je me suis bien expliquer

Je vous en remercie d’avance.
 
L

LaurentTBT

Guest
Bonjour à tous,

Voici une macro qui réalisera ce que tu demandes, si j'ai bien tout compris.

Sub RecopierLignePleines()
Dim cellule As Range

Application.ScreenUpdating = False
Worksheets("Feuil2").Range("A1:F1").EntireColumn.Clear
For Each cellule In Worksheets("Feuil1").Range("A1").Resize(Range("A65536").End(xlUp).Row, 1)
If cellule <> "" And cellule.Cells(1, 2) <> "" And cellule.Cells(1, 3) <> "" _
And cellule.Cells(1, 4) <> "" And cellule.Cells(1, 5) <> "" And cellule.Cells(1, 6) <> "" Then
cellule.Resize(1, 6).Copy
Worksheets("Feuil2").Range("A65536").End(xlUp).Cells(2, 1).PasteSpecial
End If
Next cellule
Worksheets("Feuil2").Range("A1").EntireRow.Delete
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Bonne journée.
Laurent.

PS1: j'ai supposé que tes données étaient en feuil1, colonnes A à F, et dès la ligne1 (titres possibles), et que les lignes pleines étaient copiées dans les mêmes colonnes de la feuil2.
PS2: je n'ai pas compris l'intérêt de tes 3 colonnes supplémentaires, que je n'utilise pas ici.
 
L

LaurentTBT

Guest
Oups, désolé, PetitClaude, j'avais mal lu.
En fait, ce sont les lignes qui ne sont pas complètes dans le premier tableau qu'il faut recopier. J'ai fait le contraire.

Alors voici ta macro modifiée:

Private Sub CommandButton1_Click()
Dim Cellule As Range
Dim NouvelleCellule As Range

Application.ScreenUpdating = False
Worksheets("Feuil2").Range("E8:G8").EntireColumn.Clear For Each Cellule In Worksheets("Feuil1").Range("M1").Resize(Range("M65536").End(xlUp).Row, 1)
If Cellule.Cells(1, 2) = "" Or Cellule.Cells(1, 4) = "" Then
With Worksheets("Feuil2")
If .Range("E10") = "" Then
Set NouvelleCellule = .Range("E10")
Else
Set NouvelleCellule = .Range("E65536").End(xlUp).Cells(2, 1)
End If
End With
NouvelleCellule = Cellule.Cells(1, 5)
NouvelleCellule.Cells(1, 2) = Cellule.Cells(1, 1)
NouvelleCellule.Cells(1, 3) = Cellule.Cells(1, 3)

End If
Next Cellule
Application.ScreenUpdating = True

End Sub

Attention, au début, on efface les colonnes E à G de la feuille 2, donc y compris ce qui y est au-dessus de la ligne 10. Comme tu demandes de commencer la recopie à partir de E10, peut-être as-tu des données au-dessus qui vont alors disparaître. Une toute petite modif sera alors nécessaire.

Sinon, la macro n'utilise toujours pas tes 3 colonnes supplémentaires de la feuille 1. Tu pourras les supprimer si tu n'en as pas besoin par ailleurs.

Bonne nuit.
Laurent.
 

Discussions similaires

Statistiques des forums

Discussions
312 971
Messages
2 094 045
Membres
105 926
dernier inscrit
Odyssea