IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

une macro en phase terminale


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    pré-retraité
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : pré-retraité

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Par défaut une macro en phase terminale
    Bonjour à tous , j'ai créé trois macros excel 2021 , avec l'éditeur qui fonctionnent très bien indépendamment l'une de l'autre . Seulement je voudrais les réunir en une seule ( ça je sais faire ) , et je voudrais y ajouter une boucle " tant que " égalité entre 2 cellules ( ça , pour moi , c'est un peu plus compliqué ..... pour n'embêter personne , j'ai demandé à ChatGPT d'y jeter un petit coup d'oeil ..... je dois dire que je suis assez impressionné par ce truc ( c'est un peu comme si un pote comprenait la situation et te répondait en trouvant la bonne solution ) ..... seulement voilà , il écrit le programme en instruisant dès le départ des valeurs et des variables comme un vrai pro , et là je suis larguer , car il faut que je place des éléments de mes macros dans les vides laissé par GPT ........... en plus c'est macro assez simple => une mise à jour 1) en supprimant une ligne ; reprendre une égalité 2) copié collé et additionner des résultats quand ils sont positifs 3) trier les nouvelles données ...... éxécuter l'opération 2 ou 300 fois avec la boucle .... Assez simple , mais seulement il faut l'écrire dans le bon ordre et n'oublier aucune ponctuation _ ou ; etc....
    Je crois que l'éditeur de macro c'est bien , mais le langage VBA vu et corrigé ( et surtout allégé ) par un professionnel , c'est autre chose ?
    Est-ce quelqu'un peut m'aider dans ma tâche ..... je dois avoir un compte dropbox si vous voulez prélever des infos ....
    Par avance , merci

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour et bienvenue
    Pour faire simple tu peux joindre un petit fichier test sans macro et avec qq lignes de données non confidentielle ou un capture écran
    et une simulation du résultat attendu

  3. #3
    Futur Membre du Club
    Homme Profil pro
    pré-retraité
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : pré-retraité

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Par défaut
    Bonjour et tout d'abord un grand merci , pour bien vouloir vous occuper de mon problème ..... expliquer en Qq lignes n'est pas simple mais voici ma Q? posée à ChatGPT et fin de texte : sa propre réponse ; qui est probablement juste mais que je ne comprends pas au niveau de la déclaration des feuillets ainsi que la décomposition en 2 parties de mes propres macros ( que je souhaite réunir en une seule )

    Quelle serait la meilleure façon de réunir ces 3 macros en une seule et en plus ajouter une boucle qui s'arrête quand => dans T²Bord , la valeur de la cellule F12 est égale à la valeur de la cellule M12 ? ? Sub Macro2()
    '
    ' Macro2 Macro
    ' Passer au tirage suivant
    '
    ' Touche de raccourci du clavier: Ctrl+q
    '
    Range("A1").Select
    Sheets("Bank").Select
    Rows("3:3").Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    Sheets("Base").Select
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "=Bank!RC"
    Range("A3").Select
    Selection.AutoFill Destination:=Range("A3:W3"), Type:=xlFillDefault
    Range("A3:W3").Select
    Range("B8").Select
    Selection.Copy
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A3:W3").Select
    Selection.AutoFill Destination:=Range("A3:W59")
    Range("A3:W59").Select
    Range("A1").Select
    Sheets("T²Bord").Select
    Range("A1").Select
    End Sub
    Sub Macro3()
    '
    ' Macro3 Macro
    ' Copier coller et additionner les nouvelles références dans Comp-Cell's et Compteur
    '
    ' Touche de raccourci du clavier: Ctrl+s
    '
    Range("A1").Select
    Sheets("Comp-Cell's").Select
    Range("AB4:AU57").Select
    Selection.Copy
    Range("AY4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY60").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=R[-57]C+RC[-23]"
    Range("AY60").Select
    Selection.AutoFill Destination:=Range("AY60:AY114"), Type:=xlFillDefault
    Range("AY60:AY114").Select
    Range("AY61:AY114").Select
    Selection.AutoFill Destination:=Range("AY61:BR114"), Type:=xlFillDefault
    Range("AY61:BR114").Select
    Range("AY60:BR114").Select
    Selection.Copy
    Range("AB60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY60:BR114").Select
    Selection.ClearContents
    Range("AY60").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("A1").Select
    Sheets("Compteur").Select
    Range("AB4:AU57").Select
    Selection.Copy
    Range("AY4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY61").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=RC[-23]+R[-57]C"
    Range("AY61").Select
    Selection.AutoFill Destination:=Range("AY61:AY114"), Type:=xlFillDefault
    Range("AY61:AY114").Select
    Selection.AutoFill Destination:=Range("AY61:BR114"), Type:=xlFillDefault
    Range("AY61:BR114").Select
    Selection.Copy
    Range("AB61").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY61:BR114").Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("T²Bord").Select
    Range("A1").Select
    End Sub
    Sub Macro4()
    '
    ' Macro4 Macro
    ' Tri final des données sur T²Bord
    '
    ' Touche de raccourci du clavier: Ctrl+d
    '
    Range("D14:H14").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("K14").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("L14").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Add2 Key:=Range("L14:L83" _
    ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("T²Bord").Sort
    .SetRange Range("K14:L83")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    Range("O14").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Add2 Key:=Range("O14:O83" _
    ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("T²Bord").Sort
    .SetRange Range("N14:O83")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With

    ChatGPT
    Pour réunir ces trois macros en une seule et ajouter une boucle qui s'arrête lorsque la valeur de la cellule F12 dans T²Bord est égale à la valeur de la cellule M12, vous pouvez utiliser la structure de boucle "Do While". Voici le code combiné :

    vba
    Copy code
    Sub MacroCombinée()
    ' Déclaration des variables
    Dim wsBank As Worksheet
    Dim wsBase As Worksheet
    Dim wsT2Bord As Worksheet
    Dim wsCompCells As Worksheet
    Dim wsCompteur As Worksheet

    ' Assignation des feuilles de calcul
    Set wsBank = Sheets("Bank")
    Set wsBase = Sheets("Base")
    Set wsT2Bord = Sheets("T²Bord")
    Set wsCompCells = Sheets("Comp-Cell's")
    Set wsCompteur = Sheets("Compteur")

    ' Variable de sortie de la boucle
    Dim stopLoop As Boolean
    stopLoop = False

    ' Boucle principale
    Do While Not stopLoop
    ' Appeler la première partie de la première macro
    ' ...

    ' Appeler la deuxième partie de la première macro
    ' ...

    ' Appeler la première partie de la deuxième macro
    ' ...

    ' Appeler la deuxième partie de la deuxième macro
    ' ...

    ' Appeler la première partie de la troisième macro
    ' ...

    ' Appeler la deuxième partie de la troisième macro
    ' ...

    ' Vérifier la condition de sortie de la boucle
    If wsT2Bord.Range("F12").Value = wsT2Bord.Range("M12").Value Then
    stopLoop = True
    End If
    Loop
    End Sub
    Remarque : Assurez-vous de remplacer les commentaires "..." par le code réel de chaque partie de vos macros d'origine. Cette structure utilise une boucle "Do While" qui continuera à s'exécuter tant que la condition spécifiée n'est pas satisfaite. Une fois que la condition est remplie, la boucle s'arrête.

    Je dois pouvoir vous joindre si vous le désirez le fichier en Q? par Dropbox ...... je faisais comme avec la personne qui m'a aprris les premiers pas dans les macros avec Excel .....
    Merci encore et bon courage .

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Personnellement je ne vois pas l'utilité de la réponse de GPT... un petit fichier avec qq lignes de données de départ et une simulation du résultat attendu suffit
    Joindre ici l'exemple pour espérer de la'ide des autres amis du site

  5. #5
    Futur Membre du Club
    Homme Profil pro
    pré-retraité
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : pré-retraité

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Par défaut macro en attente
    Et donc ............
    mon problème reste entier .
    merci beaucoup .

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Salut,

    Heu ..., si c'est ChatGPT qui t'as écrit ça, désolé, c'est à vomir.

    Du point de vue développeur, une "macro", n'est ni plus ni moins qu'une procédure (fonction sans valeur de retour) sans paramètres
    et bien sur, une fonction peut en appeler d'autres (c'est ainsi que l'on "réunit" plusieur "macros").

    Quand à "Appeler la première partie de la première macro", désolé encore, ca ne veut rien dire.
    une fonction s'exécute du début à la fin, il n'y a pas d'exécution partielle.
    Cela indique entre autre, que tes fonctions en font plus qu'elles ne devraient, et méritent d'être fractionnées en plusieurs fonctions.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    La macro proposée par CHATGPT est en fait une macro d'enregistreur de macro, apparemment. Loin d'être la meilleur technique, donc.

    De plus, une macro qui fait "trop de chose" est difficile à maintenir. Alors, si on en lie 3 en 1, c'est encore pire.

    Peut-être pourrais-tu expliquer ce que tu souhaites réaliser, sans t'appuyer sur la macro proposée par l'AI, et nous pourrons probablement mieux t'aider.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour,

    Juste histoire de rendre lisible vos codes précédents

    Vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    Range("A1").Select
    Sheets("Bank").Select
    Rows("3:3").Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    Sheets("Base").Select
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "=Bank!RC"
    Range("A3").Select
    Selection.AutoFill Destination:=Range("A3:W3"), Type:=xlFillDefault
    Range("A3:W3").Select
    Range("B8").Select
    Selection.Copy
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A3:W3").Select
    Selection.AutoFill Destination:=Range("A3:W59")
    Range("A3:W59").Select
    Range("A1").Select
    Sheets("T²Bord").Select
    Range("A1").Select
    End Sub
    Sub Macro3()
    '
    ' Macro3 Macro
    ' Copier coller et additionner les nouvelles références dans Comp-Cell's et Compteur
    '
    ' Touche de raccourci du clavier: Ctrl+s
    '
    Range("A1").Select
    Sheets("Comp-Cell's").Select
    Range("AB4:AU57").Select
    Selection.Copy
    Range("AY4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY60").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=R[-57]C+RC[-23]"
    Range("AY60").Select
    Selection.AutoFill Destination:=Range("AY60:AY114"), Type:=xlFillDefault
    Range("AY60:AY114").Select
    Range("AY61:AY114").Select
    Selection.AutoFill Destination:=Range("AY61:BR114"), Type:=xlFillDefault
    Range("AY61:BR114").Select
    Range("AY60:BR114").Select
    Selection.Copy
    Range("AB60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY60:BR114").Select
    Selection.ClearContents
    Range("AY60").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("A1").Select
    Sheets("Compteur").Select
    Range("AB4:AU57").Select
    Selection.Copy
    Range("AY4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY61").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=RC[-23]+R[-57]C"
    Range("AY61").Select
    Selection.AutoFill Destination:=Range("AY61:AY114"), Type:=xlFillDefault
    Range("AY61:AY114").Select
    Selection.AutoFill Destination:=Range("AY61:BR114"), Type:=xlFillDefault
    Range("AY61:BR114").Select
    Selection.Copy
    Range("AB61").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AY61:BR114").Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("T²Bord").Select
    Range("A1").Select
    End Sub
    Sub Macro4()
    '
    ' Macro4 Macro
    ' Tri final des données sur T²Bord
    '
    ' Touche de raccourci du clavier: Ctrl+d
    '
    Range("D14:H14").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("K14").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("L14").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Add2 Key:=Range("L14:L83" _
    ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("T²Bord").Sort
    .SetRange Range("K14:L83")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    Range("O14").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("T²Bord").Sort.SortFields.Add2 Key:=Range("O14:O83" _
    ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("T²Bord").Sort
    .SetRange Range("N14:O83")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    GPT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub MacroCombinée()
    ' Déclaration des variables
    Dim wsBank As Worksheet
    Dim wsBase As Worksheet
    Dim wsT2Bord As Worksheet
    Dim wsCompCells As Worksheet
    Dim wsCompteur As Worksheet
     
    ' Assignation des feuilles de calcul
    Set wsBank = Sheets("Bank")
    Set wsBase = Sheets("Base")
    Set wsT2Bord = Sheets("T²Bord")
    Set wsCompCells = Sheets("Comp-Cell's")
    Set wsCompteur = Sheets("Compteur")
     
    ' Variable de sortie de la boucle
    Dim stopLoop As Boolean
    stopLoop = False
     
    ' Boucle principale
    Do While Not stopLoop
    ' Appeler la première partie de la première macro
    ' ...
     
    ' Appeler la deuxième partie de la première macro
    ' ...
     
    ' Appeler la première partie de la deuxième macro
    ' ...
     
    ' Appeler la deuxième partie de la deuxième macro
    ' ...
     
    ' Appeler la première partie de la troisième macro
    ' ...
     
    ' Appeler la deuxième partie de la troisième macro
    ' ...
     
    ' Vérifier la condition de sortie de la boucle
    If wsT2Bord.Range("F12").Value = wsT2Bord.Range("M12").Value Then
    stopLoop = True
    End If
    Loop
    End Sub
    Je vois beaucoup de lignes inutiles et chronophages. Enregistreur de macro certainement comme déjà relevé.

    Peux-tu déposer ton fichier ici et nous présenter ce que tu veux faire (macro par macro) ?

Discussions similaires

  1. [VB6] Exécuter une macro Access
    Par Nektanebos dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/02/2006, 17h32
  2. Macro utilisant une macro...
    Par Gogoye dans le forum C
    Réponses: 2
    Dernier message: 29/10/2003, 15h22
  3. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 13h15
  4. Qu'est-ce qu'une macro ?
    Par karli dans le forum Assembleur
    Réponses: 2
    Dernier message: 01/09/2002, 04h38
  5. Réponses: 2
    Dernier message: 22/07/2002, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo