Macro : Copier de valeurs de lignes non vide

Résolu/Fermé
lanfeust10 Messages postés 8 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 novembre 2011 - 7 nov. 2011 à 12:41
lanfeust10 Messages postés 8 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 novembre 2011 - 9 nov. 2011 à 11:15
Bonjour,

J'ai voulue créer une macro permettant de copier les lignes non vide des colonnes A à L à partir de la ligne 7, pour les coller en valeurs dans la feuille2 en A2. Malgré plusieurs tentatives, la sélection collée se répète sur les colonnes suivantes jusqu'à la fin du classeur.

Sub Enregistrement()
'
Range("A7").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Feuille2").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

Auriez vous une idée

A voir également:

6 réponses

Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
7 nov. 2011 à 22:38
Bonjour,
Vous parlez de copier les lignes non vides et votre code ne prend que les premières lignes consécutives non vides dès la ligne 7 et c'est tous.
Question : pourquoi recopier que les lignes non vide sur la feuille 2 ?
0
lanfeust10 Messages postés 8 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 novembre 2011 4
8 nov. 2011 à 09:59
Effectivement, il s'agit de recopier les lignes non vides à partir de la ligne 7. Je copie ces valeurs de manière à séparé la feuille de saisie et et la feuille servant de base de données (feuille2). Afin que cette base de donnée puisse être traité par différents TCD, je ne souhaite copier que les valeurs saisies.
0
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
8 nov. 2011 à 21:33
Bonjour,
Merci.
La solution va suivre. Patience.
0
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
8 nov. 2011 à 22:31
Bonjour,
Je vous laisse essayer cette procédure :
Sub Enregistrement()
Dim sh2 As Worksheet
Dim derli As Long, livi as Long
Const preli As Integer = 7
Set sh2 = Sheets("Feuil2")
derli = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
For c = preli To derli
    nb = Application.CountA(Rows(c))
    If nb > 0 Then
        With sh2
            livi = (.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row + 1)
        .Range(.Cells(livi, 1), .Cells(livi, nb)) = Range(Cells(c, 1), Cells(c, nb)).Value
        End With
    End If
Next c
End Sub
Merci de votre réponse.
0

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

Posez votre question
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
8 nov. 2011 à 22:45
Bonjour,
J'ai posté la mauvaise version, merci de prendre celle-ci :
Sub Enregistrement()
Dim sh2 As Worksheet
Dim derli As Long, livi As Long
Const preli As Integer = 7
Set sh2 = Sheets("Feuil2")
derli = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
For c = preli To derli
    nb = Application.CountA(Rows(c))
    If nb > 0 Then
        derco = Cells(c, Rows(c).Cells.Count).End(xlToLeft).Column
        With sh2
            livi = (.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row + 1)
        .Range(.Cells(livi, 1), .Cells(livi, derco)) = Range(Cells(c, 1), Cells(c, derco)).Value
        End With
    End If
Next c
End Sub
Merci de votre réponse.
0
lanfeust10 Messages postés 8 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 novembre 2011 4
9 nov. 2011 à 11:15
J'ai testé ces lignes de commandes et cela marche très bien. Merci beaucoup
0