Problème VBA Excel
Résolu
dubol
-
melanie1324 Messages postés 1561 Statut Membre -
melanie1324 Messages postés 1561 Statut Membre -
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 :
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
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
-
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))
ouRange("C" & var1 & ":" & "D" & var1)
Cordialement. -
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 -
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 -
re,
il faut que tu écrives :
If Cells(var1, 1) = "" Then var4 = True
au lieu de ce que tu as mis. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
tu peux juste mettre ton sujet à resolu stp (en dessous de ton titre normalement