Problème VBA Excel

Résolu
Bonjour,

J'essaie depuis 2 h de faire un petit code mais mes connaissances sont limitées en programmation et mes recherches infructueuses.

Mon programme permet de répéter une suite d'action dans Excel :
Prendre les cellules C2 et D2, les couper, les coller en A1 et B1, sauter une ligne entre 2 et 3 puis recommencer (prendre cellules C4 et D4, les couper, les coller en A3 et B3, sauter une ligne entre 4 et 5.......). A cela je voulais y ajouter une boucle qui arrête la marco lorsqu'il n'y a plus de donnée dans une cellule.

Voici mon code :

Sub Macro2()

    Dim var1 As Integer
    var1 = 2 

    Dim var2 As Integer
    var2 = 1
    
    Dim var3 As Integer
    var3 = 3
    
    Dim var4 As Boolean
    var4 = 0

'If var4 = False Then
    Range("Cvar1:Dvar1").Select
    Selection.Cut
    Range("Avar2").Select
    ActiveSheet.Paste
    Rows("var3:var3").Select
    Selection.Insert Shift:=xlDown
    var1 = var1 + 2
    var2 = var2 + 2
    var3 = var3 + 2
    
 'If Range("Ai") = Null Then var4 = True
 'End If
End Sub


Pouvez-vous m'aider à résoudre les problèmes? Merci

le débogueur n'est déjà pas content pour cette ligne et je ne trouve pas pourquoi : Range("Cvar1:Dvar1").Select

6 réponses

  1. Contributeur
    Bonjour,

    si tu veux sélectionner les cellules de la ligne var1 pour les colonnes C et D, tu ferais mieux d'écrire :
    Range(Cells(var1,3),Cells(var1,4))

    ou
    Range("C" & var1 & ":" & "D" & var1)


    Cordialement.
    0
    1. bonjour,

      c'est tout à fait normal :

      Sub Macro2()

      Dim var1 As Integer
      var1 = 2

      Dim var2 As Integer
      var2 = 1

      Dim var3 As Integer
      var3 = 3

      Dim var4 As Boolean
      var4 = 0

      'If var4 = False Then
      Range(cells(var1,3), cells(var1,4).Select
      Selection.Cut
      cells(var2,1).Select
      ActiveSheet.Paste
      Rows(var3).Select
      Selection.Insert Shift:=xlDown
      var1 = var1 + 2
      var2 = var2 + 2
      var3 = var3 + 2

      'If Range("Ai") = "" Then var4 = True
      'End If
      End Sub
      0
      1. Cela fonctionne merci, ma boucle aussi mais par contre je n'arrive pas à l'arrêter quand il n'y a rien dans la cellule cible

        Mon code :

        Sub Macro2()
        
            Dim var1 As Integer
            var1 = 2
            
            Dim var2 As Integer
            var2 = 1
            
            Dim var3 As Integer
            var3 = 3
            
            Dim var4 As Boolean
            var4 = 0
        
        line18:
        If var4 = False Then
            Range(Cells(var1, 3), Cells(var1, 4)).Select
            Selection.Cut
            Cells(var2, 1).Select
            ActiveSheet.Paste
            Rows(var3).Select
            Selection.Insert Shift:=xlDown
            var1 = var1 + 2
            var2 = var2 + 2
            var3 = var3 + 2
            If Cells(var1, 1) = Not Vide Then var4 = True
            
            GoTo line18
         End If
        End Sub
        0
        1. re,

          il faut que tu écrives :

          If Cells(var1, 1) = "" Then var4 = True

          au lieu de ce que tu as mis.
          0
          1. fonctionne superbement merci.

            maintenant je vais essayer d'ajouter d'autres actions.
            0
            1. tu peux juste mettre ton sujet à resolu stp (en dessous de ton titre normalement
              0