Copier coller une ligne
Résolu
mohamed_2016
Messages postés
33
Statut
Membre
-
mohamed_2016 Messages postés 33 Statut Membre -
mohamed_2016 Messages postés 33 Statut Membre -
Bonjour le forum
je suis debutant en VBA excel
je veut copier des lignes qui sont subit à une condition dans une autre feuille l'un après l'autre
voila mon tentative
merci !
je suis debutant en VBA excel
je veut copier des lignes qui sont subit à une condition dans une autre feuille l'un après l'autre
voila mon tentative
merci !
Sub copier() Dim DL As Integer Dim I As Integer Dim N As Integer ' optimisation Application.ScreenUpdating = False ' pour gagner du temps : on désactive avant le macro et on réactive aprés DL = Range("A" & Application.Rows.Count).End(xlUp).Row N = 1 For I = DL To 9 Step -1 Sheets(1).Select If Not IsNumeric(Cells(I, 1).Value) = True Then Rows(I).Select Rows(I).Copy 'Rows(I).Delete Sheets("Trash").Range("A" & N).PasteSpecial Paste:=xlPasteValues 'Sheets(1).Range("A7").Value = DL End If Next I N = N + 1 Application.ScreenUpdating = True End Sub
A voir également:
- Copier coller une ligne
- Historique copier coller - Guide
- Copier-coller - Accueil - Informatique
- Copier coller pdf - Guide
- Style d'écriture a copier coller - Guide
- Comment copier une vidéo youtube - Guide
1 réponse
Bonjour Mohamed, bonjour le forum,
Essaie comme ça :
Essaie comme ça :
Sub copier() Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim OD As Worksheet 'déclare la variable OD (Onglet Destination) Dim DL As Integer 'déclare la variable DL (Dernière Ligne) Dim I As Integer 'déclare la variable I (Incrément) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Application.ScreenUpdating = False 'masque les rafraîchissements d'écran Set OS = Sheets(1) 'définit l'onglet source OS Set OD = Sheets("Trash") 'définit l'onglet destination OD 'définit la dernière ligne éditée DL de la colonne A de l'onglet source OS DL = OS.Range("A" & Application.Rows.Count).End(xlUp).Row For I = DL To 9 Step -1 'boucle inversée sur les lignes I de la ligne DL à la ligne 9 'condition : si la valeur de la cellule ligne I colonne 1 n'est pas numérique If Not IsNumeric(OS.Cells(I, 1).Value) = True Then 'définit la cellue de destination DEST (A1 si A1 est vide, sinon, la première cellule vide de la colonne A de l'onglet OD) Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Range("A" & Application.Rows.Count).End(xlUp).Offset(1, 0)) OS.Rows(I).Copy 'copie la ligne I de l'onglet source DEST.PasteSpecial Paste:=xlPasteValues 'colle les valeurs dans la cellule DEST OS.Rows(I).Delete 'supprime la ligne I de l'onglet source OS End If 'fin de la condition Next I 'prochaine ligne de la boucle Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran End Sub
ça marche convenablement ,,ça ce que j'ai voulais