Macro copie valeurs plage d'un onglet vers une zone d'un autre onglet
Bonjour
Je cherche à créer une macro qui permettrait de copier les valeurs d'une plage d'une feuille vers une autre feuille.
En fait il s'agirait de copier les lignes non vide vers la 1ere ligne non vide d'une autre feuille.
J'ai essayé de modifier un code déja existant mais il me copie colle les ligne et non pas seulement les valeurs.
Sub Transfert()
Dim lig As Long
Sheets("Charge Par Article").Select
'Selection du tableau à partir de la cellule F6
For lig = 2 To ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
If Application.CountA(Rows(lig)) > 0 Then
'Copie de la ligne entière si non vide sur la feuille "Feuil2"
Rows(lig).Copy Destination:=Sheets("Analyse").Rows(Sheets("Analyse").Range("A" & Rows.Count).End(xlUp).Row + 1)
End If
Next lig
MErci.
Bonjour piouk02
Sujet maintes fois abordé, avec une petite recherche, je pense que vous auriez trouvé
Ca se fait uniquement en 2 étapes
Rows(lig).Copy
Sheets("Analyse").Rows(Sheets("Analyse").Range("A" & Rows.Count).End(xlUp).Row + 1).PasteSpecial xlValues
A+
Rows(lig).Copy
Sheets("Analyse").Rows(Sheets("Analyse").Range("A" & Rows.Count).End(xlUp).Row + 1).PasteSpecial xlValues
Bonjour
oui j'ai cherché sur plusieurs forum.
Mais je n'ai pas trouvé de solution répondant à mon besoin.
Le code proposé ne me permet pas de copier/coller une plage de cellule mais une ligne entière. Ce qui fait que dans l'onglet de destination cela efface les données présentes et les formules de calcul.
Re,
Désolé, mais je ne fais que répondre à votre demande
En fait il s'agirait de copier les lignes non vide vers la 1ere ligne non vide d'une autre feuille.
... il me copie colle les lignes et non pas seulement les valeurs.
Soyez plus explicite la prochaine fois
Bonne chance
bonjour BrunoM45,piouk02,
il y a une chose qui n'est pas résolu, si la cellule A est vide, mais un des 5 cellules voisin ne l'est pas, alors cette plage sera copié, okay ! Mais la ligne suivante ecrasera le précédent ....
' A tester copier les valeurs de la la plage A:F pour lesquelles A et non vide de l'onglet charge vers la 1ere ligne vide de l'onglet analyse
Sub Transfert()
Dim lig As Long
Sheets("Charge Par Article").Select
'Selection du tableau à partir de la cellule F6
For lig = 2 To ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Set c = Cells(lig, 1).Resize(, 6)
If Application.CountA(c) > 0 Then
'Copie de la ligne entière si non vide sur la feuille "Feuil2"
c.Copy
Sheets("Analyse").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
End If
Next lig
'Selectionne la cellule A1
Range("A1").Select
End Sub
Sub Transfert_Sans_Select_Avec_With()
Dim lig As Long
With Sheets("Charge Par Article")
'Selection du tableau à partir de la cellule F6
For lig = 2 To .Range("A" & Rows.Count).End(xlUp).Row
Set c = .Cells(lig, 1).Resize(, 6)
If Application.CountA(c) > 0 Then
'Copie de la ligne entière si non vide sur la feuille "Feuil2"
c.Copy
Sheets("Analyse").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
End If
Next lig
'Selectionne la cellule A1
Application.Goto .Range("A1")
End With
End Sub
Merci beaucoup BsAlvcela fonctionne