Sauvegarder la valeur d'une variable - macro Excel

Bonjour,

Malgré les cours proposés par le site je ne suis pas parvenu à sauvegarder les valeurs des variables i et g dans ma macro,

En effet, elles se réinitialisent à chaque nouvelle exécution,

Pouvez-vous m'aider svp ?

Voici le code :

Static Sub exemple()

Dim i, g As Integer
i = 4
g = 1


For i = 4 To 16

If IsEmpty(Cells(42, i)) Then

Cells(42, i) = "commande n°" & g


Range("M13:O31").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=12
Cells(44, i).Select
ActiveWindow.SmallScroll Down:=9
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=9
Application.CutCopyMode = False

i = i + 4
g = g + 1


Exit For

End If

Next
End Sub

Merci d'avance,

Bien cordialement

Bonjour,

Comme ceci peut-être:

Sub exemple()
    Dim i, g As Integer
    g = 1
    Range("M13:O31").Copy
    For i = 4 To 16 Step 4
        If IsEmpty(Cells(42, i)) Then
            Cells(42, i) = "commande n°" & g
            With Cells(44, i)
                .PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            End With
            g = g + 1
        End If
    Next
End Sub

Cdlt

Bonjour,

Merci pour votre réponse Arturo83,

J'ai complètement oublié de préciser mon besoin,

En fait, comme vous l'avez surement compris,

Il s'agit de faire un copier-coller d'une plage de cellule (M13:O31) sur une autre plage de la même feuille,

Et j'aimerai que le copier-coller ne se fasse qu'une fois :

- soit sur la plage de cellule initiale "Cells(44, i).Select", SI cette plage est vide

- soit sur la plage "Cells(44, i+4).Select", SI cette la plage initiale est remplie

Voilà, j'espère avoir bien expliquer mon besoin,

Au plaisir de lire votre réponse,

Bien cordialement !

Ok, alors ceci:

Sub exemple()
    Dim i, g As Integer
    g = 1
    i = 4
    Range("M13:O31").Copy
    Do While Cells(42, i) <> ""
        g = g + 1
        i = i + 4
    Loop
    Cells(42, i) = "commande n°" & g
    With Cells(44, i)
        .PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
End Sub

Cdlt

Merci beaucoup Arturo83 !!

Cela répond parfaitement à ce que je recherche,

Bien cordialement !

Rechercher des sujets similaires à "sauvegarder valeur variable macro"