Problème VBA Excel

Résolu
dubol -  
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

6 réponses

chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
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
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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
dubol
 
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
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
re,

il faut que tu écrives :

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

au lieu de ce que tu as mis.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubol
 
fonctionne superbement merci.

maintenant je vais essayer d'ajouter d'autres actions.
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
tu peux juste mettre ton sujet à resolu stp (en dessous de ton titre normalement
0