Excel macro applicable à toutes les cellules

georgesL -  
 georgesL -
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

  1. Utilisateur anonyme
     
    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
    0
    1. georgesL
       
      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
      0