Petite Macro avec test et textbox

grovallat

XLDnaute Nouveau
Bonjour à tous,
Je suis encore assez nouveau dans le monde du VB excel alors j'aurais besoin d'un coup de main pour une petite Macro.

Voilà le contexte:
Sur une feuille 0, j'ai une macro1 qui permet l'ouverture d'une feuille1 et une seconde macro appellé macroX qui éxécute quelques petites opération sur plusieurs feuilles dont la feuille1.

Mais voilà mon problème est que si la macro1 n'a pas été préalablement éxécutée la macroX ne s'éxécutera pas correctement je cherche donc à faire quelque chose du type.

MacroY
test si une feuille1 existe:
si oui alors MacroX s'éxécute
si non textbox "la feuille concernée par la macroX n'existe pas"
end sub

La textbox n'aurait que pour réponse possible un "ok "qui permettrait à l'opérateur qui clique dessus de revenir à la page ou il était (pour éventuellement éxécuter la macro1 par exemple).

Voilà mon soucis, j'espère avoir été clair, si ce n'est pas le cas je vous redonnerai volontiers des infos.

Merci d'avance
 

mromain

XLDnaute Barbatruc
Re : Petite Macro avec test et textbox

bonjour grovallat,

voici un essai :
Code:
Public Function FeuilleExiste(nomFeuille As String) As Boolean
Dim curSheet As Worksheet
FeuilleExiste = False
For Each curSheet In ThisWorkbook.Sheets
    If curSheet.Name = nomFeuille Then FeuilleExiste = True: Exit Function
Next curSheet
End Function


Public Sub MacroY()
If FeuilleExiste("Feuil1") Then
    'lancer MacroX
Else
    MsgBox "la feuille n'existe pas"
End If
End Sub

a+
 

grovallat

XLDnaute Nouveau
Re : Petite Macro avec test et textbox

Pardonne moi mais je ne saisis pas ta public function, je pensais plutot pour le test un truc du style balayage des feuille pour savoir si une s'appelle feuille1, mais bon je suis pas un expert.
Pourrai-tu commenter un tout petit peu stp(dsl).
Merci d'avance
 

mromain

XLDnaute Barbatruc
Re : Petite Macro avec test et textbox

re,

je pensais plutot pour le test un truc du style balayage des feuille pour savoir si une s'appelle feuille1
c'est ce que fait la fonction.

je te renvoie le code commenté.

Code:
Dim curSheet As Worksheet
'on initialise le retour de la fonction à "False" (on suppose que la feuille n'existe pas)
FeuilleExiste = False
'boucler sur l'ensemble des feuilles du classeur
For Each curSheet In ThisWorkbook.Sheets
    'si la feuille courante a le bon nom, la fonction retourne "True" et on quitte la fonction
    If curSheet.Name = nomFeuille Then FeuilleExiste = True: Exit Function
Next curSheet
End Function


Public Sub MacroY()
'ici on appelle la fonction "FeuilleExiste", on va tester si une feuille nommée "Feuil1" existe dans le classeur
'si c'est le cas, la fonction va retourner "True" et on va "rentrer dans le If"
If FeuilleExiste("Feuil1") Then
    'lancer MacroX
Else 'sinon (la feuille n'existe pas), afficher le message
    MsgBox "la feuille n'existe pas"
End If
End Sub

a+
 

Discussions similaires

Réponses
2
Affichages
353

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88