Excel macro applicable à toutes les cellules

Bonjour,

je dois sur une feuille excel faire une tâche répétitive de coupage et collage, j'ai donc créé une macro:

Sub Macroessai()
'
' Macroessai Macro
'

'
Range("A24:D25").Select
Selection.Cut
Range("E24:H24").Select
Range("H24").Activate
Selection.Cut
Range("A26").Select
End Sub

comment faire pour que cette macro soit applicable à toutes mes cellules? j'aimerai réitérer la macro sur la cellule A26 puis A28...
merci

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Il manque des informations à ta demande !

    Je ne vois pas le collage dans le code soumis !

    Il existe plusieurs façon de faire, mais il faudrait nous en dire plus.

    En attendant, voici une façon de faire :

    Sub MacroEssai() 
    
        Dim Cellules As Range 
        Dim Adresse As String 
         
        Set Cellules = Application.InputBox("Sélectionner la cellule de départ", Type:=8) 
         
        Adresse = "A" & Cellules.Row & ":D" & (Cellules.Row + 1) 
         
        Range(Adresse).Select 
        Selection.Cut 
    
        Adresse = "E" & Cellules.Row & ":H" & Cellules.Row 
    
        Range(Adresse).Select 
        Selection.Cut 
    
        Range("A26").Select 
    
    End Sub 
    ' 
    


    L'instruction : [ Range("H24").Activate ] me semble ici
    superflus, et on ne voit pas l'instruction de collage :

    Range("xy").Select
    ActiveSheet.Paste

    Il te faudra détailler à quel endroit tu dois coller la sélection
    qui est couper.

    Cdt

    Lupin
    1. merci beaucoup pour ta réponse Lupin, en fait j'ai trouvé la solution, c'était un problème de cellules relatives et cellules absolues, voici donc mon script

      ActiveCell.Offset(1, 0).Range("A1:D2").Select
      Selection.Cut
      ActiveCell.Offset(-1, 4).Range("A1").Select
      ActiveSheet.Paste
      ActiveCell.Offset(1, 0).Range("A1:D1").Select
      Selection.Cut
      ActiveCell.Offset(-1, 4).Range("A1").Select
      ActiveSheet.Paste
      ActiveCell.Offset(3, -8).Range("A1").Select

      c'est une macro assez simple finalement!
      merci encore