Macro : Copier de valeurs de lignes non vide
Résolu
lanfeust10
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
lanfeust10 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
lanfeust10 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Macro : Copier de valeurs de lignes non vide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
6 réponses
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 ?
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 ?
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.
Bonjour,
Je vous laisse essayer cette procédure :
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 SubMerci de votre réponse.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
J'ai posté la mauvaise version, merci de prendre celle-ci :
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 SubMerci de votre réponse.