Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

boucle de copie

BBdoc

XLDnaute Nouveau
Bonjour,

je voudrais faire une boucle de copie que je déclencherai manuellement

par l'enregistrement de macro, j'obtiens la macro suivante

Code:
Sub boucledecopie()
'
' boucledecopie Macro
' Macro enregistrée le 23/02/2012 par BBDOC
'

'
    Range("G9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G10").Select
    ActiveSheet.Paste
    Range("E10:H10").Select
    Application.CutCopyMode = False
    Range("E10:H10").Cut Destination:=Range("E9:H9")
    Rows("10:10").Select
    Selection.Delete Shift:=xlUp
End Sub

je sais que je dois remplacer la cellule g9 par active.cell, mais après je me perd dans la formulation pour décaler ma cellule active.
range (active.cell+1) ne marche pas.

Une ame charitable pourrait me donner la formulation correcte?

Merci.
 

BBdoc

XLDnaute Nouveau
Re : boucle de copie

le resultat recherché est le suivant :

je descends la cellule G9 en G10 et je remonte les cellules E10 à H10 en E9 à H9 puis j'efface la ligne 10

et G9 étant ma cellule active, je répete la macro pour chaque "ligne" que je veux modifier
 

BBdoc

XLDnaute Nouveau
Re : boucle de copie

c'est presque ça, sauf que tu n'as pas pris en compte le fait que je déplacais la cellule G dans la macro.

par contre à quoi sert le .resize (,4) ?c'est pour selectionner les 4 cellules ?
 

Pierrot93

XLDnaute Barbatruc
Re : boucle de copie

Re,
modifie peut être ainsi :
Code:
Dim i As Long
i = ActiveCell.Row
Range("E" & i & ":F" & i).Copy Range("E" & i - 1 & ":F" & i - 1)
Range("H" & i).Copy Range("H" & i - 1)
Rows(i).Delete
 

BBdoc

XLDnaute Nouveau
Re : boucle de copie

merci pierrot93 de m'avoir aider.

Avec ton aide j'ai réussi à finaliser le code pour avoir ce que je voulais.
Je te joins la correction que j'ai apportée.

Code:
Dim i As Long
i = ActiveCell.Row

With Range("G" & i)
    .Copy Range("G" & i + 1)
End With

With Range("E" & i + 1 & ":H" & i + 1)
    .Copy Range("E" & i & ":H" & i)
Rows(i + 1).Delete
End With

Mille mercis
 

ROGER2327

XLDnaute Barbatruc
Re : boucle de copie

Bonjour à tous


Pour traiter tout le tableau, code pour la feuille Feuil1 :
VB:
Sub tata()
Dim i&
    i = [G3].Row
    Do While Not IsEmpty(Range("G1").Offset(i - 1))
        Range("E1:F1").Offset(i).Cut Destination:=Range("E1:F1").Offset(i - 1)
        Range("H1").Offset(i - 1).Cut Destination:=Range("H1").Offset(i - 2)
        Range("1:1").Offset(i).Delete Shift:=xlUp
        i = i + 1
    Loop
End Sub
(Je hais les cellules fusionnées.)



ROGER2327
#5532


Dimanche 1er Pédale 139 (Erection du Surmâle - fête Suprême Tierce)
5 Ventôse An CCXX, 0,9338h - bouc
2012-W08-5T02:14:28Z
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…