Organiser sa macro

Signaler
Messages postés
12
Date d'inscription
jeudi 14 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
-
Messages postés
31508
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
-
Bonjour,

Je suis grand débutant en macro, et j'ai crée mon premier bébé.

Et grâce à l'aide de certains de ce forum, il marche :)
Il marche oui, mais je voudrais le faire courir.
En d'autres termes perfectionner ma macro, je voudrais pouvoir gérer les erreurs etc... que tout soit net.

Le problème c'est qu'en se perfectionnant, ma macro a pris du poids et je commence à avoir du mal à gérer la suite.
J'aimerais savoir comment organiser ma macro avec des étiquettes par exemple (j'ai des souvenirs de la programmation sur Ti 89 où on pouvait créer des étiquettes).

Comment créer des sous-programmes dans ma macro ?
Et comment les gérer ? (faire des "resume" et des liens vers ces sous programmes qui marchent)

Par exemple, j'ai une inputbox dans ma macro, je voudrais créer un bouton "précédent" et pouvoir gérer le fait que lorsqu'on entre un mauvais nom de fichier, un message s'affiche disant "mauvais nom" et qu'il y ait un retour à la procédure initiale puis une reprise du processus.

Merci d'avance pour votre aide !

P.S. j'ai fait des recherches sur google notamment et n'ai rien trouvé de clair dessus.

4 réponses

Messages postés
31508
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
344
Bonjour,

L'utilisation d'étiquettes en VBA est possible (ah..oui..moi aussi j'aimais bien les TI ^^ )
L'appel d'une étiquette se fait avec l'instruction GOTO nom_etiquette

Et la "déclaration" d'une étiquette avec la syntaxe Nom_etiquette:

Par contre, pour découper ton programme je te conseillerai plutot l'utilisation de Fonctions.

Exemple :
Sub Principal()

teste = InputBox("entrez OUI ou autre chose ^^", "Test")
If teste = "OUI" Then
    a = test1()
Else
    b = test2()
End If

End Sub

Function test1()
MsgBox "test1"
End Function

Function test2()
MsgBox "test2"
End Function



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour

En bonus, voici comment boucler sur la saisie d'un nom de fichier jusqu'à ce que le fichier saisi soit correct (par exemple, qu'il y ait un fichier de ce nom dans le répertoire Mes Documents) :

Function SaisieNomFichier() As String
mauvaisNom = True
Do While mauvaisNom
nomFichier = InputBox("Nom du fichier : ")
if Dir(nomFichier) = "" then
MsgBox "Nom de fichier incorrect"
Else
mauvaisNom = False
Loop
SaisieNomFichier = nomFichier
End Function

Cordialement
Messages postés
12
Date d'inscription
jeudi 14 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2010

Super merci beaucoup à vous deux, je vais potasser ça et m'entraîner avec les fonctions.
Messages postés
31508
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
344
Bonjour,

En bonus n°2 : voici comment remplacer ton InputBox par une fenetre qui te permet d'aller parcourir tes dossiers pour trouver ton fichier (comme si tu faisais : fichier / ouvrir)

FullFileName = Application.GetOpenFilename("Excel files (*.xl*),*.xl*", _
    1, "Custom Dialog Title", , False)


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI