VBA

Fermé
Julien - 19 juil. 2005 à 12:31
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 19 juil. 2005 à 12:56
Bonjour,

    Range("D9").Select
    Selection.Cut
    Range("I8").Select
    ActiveSheet.Paste
    Range("F9").Select
    Selection.Cut
    Range("J8").Select
    ActiveSheet.Paste
    Range("H9").Select
    Selection.Cut
    Range("K8").Select
    ActiveSheet.Paste
    Columns("I:I").Select
    Selection.Insert Shift:=xlToRight
    Range("D11").Select
    Selection.Cut
    Range("I10").Select
    ActiveSheet.Paste
    Range("E11").Select
    Selection.Cut
    Range("J10").Select
    ActiveSheet.Paste
    Range("F11").Select
    Selection.Cut
    Range("K10").Select
    ActiveSheet.Paste
    Range("H11").Select
    Selection.Cut
    Range("L10").Select
    ActiveSheet.Paste
    Rows("9:9").Select
    Selection.Delete Shift:=xlUp
    Rows("10:10").Select
    Selection.Delete Shift:=xlUp


Vous remarquez que ma macro travail sur 3 lignes (c'est un simple déplacement de celulles)

Je voudrai que la macro se re éxécute 11 et re fasse la meme chose et donc les 3 ligne sur lesquelles elle travaillera seront 10 11 12. Et je voudrai que cela fasse cela juska kil n'y ai plus de ligne. Comment faire ? merci bcp

1 réponse

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 juil. 2005 à 12:56
Salut,

Tu definis une variable colonne, et une variable ligne.
Puis avec une boucle tu fais incrémenter ça jusqu'à ce qu'une case de ton choix soit vide. Il me semble que la fonction pour faire ça c'est IsEmpty()

Exemple:
Dim colonne As String '(si tu es en option explicit)
Dim ligne As Integer
Dim i As Integer ' Compteur

' Ici tu crées un tableau dans la variable colonne avec toutes les 
'colonnes dont tu as besoin

ligne=1

while not IsEmpty(Range(colonne(0) & ligne )) 'La case que tu veux
Do
             Range(colonne(0) & ligne ).select 

            'Et bref, là tu fais ce que tu veux... La ligne s'incrémentera à
            ' chaque itération de la boucle.
        
            ligne=ligne+1
Wend

Bon, ce code ne veut pas dire grand chose et puis j'ai plus fait de vba depuis quelques temps mais l'idée est là.
Tu peux prendre des variables compteurs pour la ligne et aussi pour exploiter la variable colonne sachant que tu peux faire un truc du genre:
colonne=array("A","B","C")
' colonne(0) sera égal à A, colonne(1) sera egal à B etc....

Tester si une case est vide est uen solution comme une autre, le mieux étant peut être de tester une plage de case....
0