OVH Cloud OVH Cloud

message box sous vba

4 réponses
Avatar
picmin
salut à tous,
voila, j'ai deux problèmes :
je lance une macro qui pose une question à l'utilisateur, celui ci répond
par oui ou non. Si il répond "non", il ne se passe rien; si il répond "oui",
une autre macro doit se lancer. cependant, après la réponse "oui", ma macro
ne se lance pas, pouvez vous m'aider svp?
Mon autre problème est le suivant:
je lance automatiquement la création d'un feuille à chaque démarrage d'une
macro, ces nouvelles feuilles ont toutes un nom différent.
J'aimerais que si le nom d'une feuille existe déjà, un message d'erreur
apparaisse au lieu d'avoir une insertion d'une "feuille (2)".
voila mes problèmes, si vous avez des idées,n'hésitez pas svp. Merci d'avance.

4 réponses

Avatar
anonymousA
Bonjour,

pour la ere question, quel type d'interface utilises-tu pour poser ta
question ? un msgbox utilisé comme fnction sait faire ce genre de chose
sans difficulté.

pour la 2eme question, avant la création de ta feuille si on suppose que
tu veux lui donner le nom toto qui existe déjà, il suffit de faire une
boucle

ici en supposant que c'est sur la classeur actif que tu veux créer la
feuille en question

For each sh in Activeworkbook.Sheets
if sh.name="toto" then
Msgbox "cette feuille existe déjà. Veuillez changer de nom"
exit for ' (ou exit sub si tu veux carrément sortir du programme)
end if
next

A+

salut à tous,
voila, j'ai deux problèmes :
je lance une macro qui pose une question à l'utilisateur, celui ci répond
par oui ou non. Si il répond "non", il ne se passe rien; si il répond "oui",
une autre macro doit se lancer. cependant, après la réponse "oui", ma macro
ne se lance pas, pouvez vous m'aider svp?
Mon autre problème est le suivant:
je lance automatiquement la création d'un feuille à chaque démarrage d'une
macro, ces nouvelles feuilles ont toutes un nom différent.
J'aimerais que si le nom d'une feuille existe déjà, un message d'erreur
apparaisse au lieu d'avoir une insertion d'une "feuille (2)".
voila mes problèmes, si vous avez des idées,n'hésitez pas svp. Merci d'avance.


Avatar
Clément Marcotte
Bonjour,

je lance une macro qui pose une question à l'utilisateur, celui ci répond
par oui ou non. Si il répond "non", il ne se passe rien; si il répond
"oui",
une autre macro doit se lancer. cependant, après la réponse "oui", ma
macro
ne se lance pas, pouvez vous m'aider svp?


En principe, cela peut se faire avec une InputBox()

À la volée et non testé. L'ordre peut varier dans l'InputBox

sub OnContinueOuOnArrête()
dim reponse
reponse = inputbox("Voulez vous pousuivre le traitement ?", vbyesno)
select case reponse
case vbyes
'mettre ici le nom de l'autre macro
case vbno
end
case else
end select
end sub

Avatar
JLuc
*Bonjour picmin*,

salut à tous,
voila, j'ai deux problèmes :
je lance une macro qui pose une question à l'utilisateur, celui ci répond
par oui ou non. Si il répond "non", il ne se passe rien; si il répond "oui",
une autre macro doit se lancer. cependant, après la réponse "oui", ma macro
ne se lance pas, pouvez vous m'aider svp?
reponse = Inputbox("Votre choix ?

If reponse = 1 Then
mamacro
End If

Mon autre problème est le suivant:
je lance automatiquement la création d'un feuille à chaque démarrage d'une
macro, ces nouvelles feuilles ont toutes un nom différent.
J'aimerais que si le nom d'une feuille existe déjà, un message d'erreur
apparaisse au lieu d'avoir une insertion d'une "feuille (2)".
Quand on insere une feuille, le nom de cette derniere est : Feuil4,

Feuil5, Feuil6... mais jamais Feuil1(2). Ce nom apparait si on copie la
feuille uniquement. J'en deduis donc que c'est une copie d'une feuille
existante : ActiveSheet.Name = "Toto" devrait faire l'affaire ?


voila mes problèmes, si vous avez des idées,n'hésitez pas svp. Merci
d'avance.



--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS

Avatar
michdenis
Bonjour Picmin,

Voici une procédure pour ajouter une feuille sans doublons !


'--------------------------------
Sub Test()

Dim Ok As Boolean
Dim Arr As Variant, Elt As Variant
Dim NomFeuille As Variant
Dim NbSheets As Integer
NbSheets = ThisWorkbook.Sheets.Count

Arr = Array("[", "]", ">", "<", "*", "?", ":")
Do
Ok = False
NomFeuille = Application.InputBox("insérer le nom de la nouvelle feuille.", _
"Nom de la feuille", , , , , , 2)
If NomFeuille = False Then Exit Sub
If Len(NomFeuille) > 31 Then
MsgBox "Nom de la feuille a trop long. 31 caractères."
Ok = True
End If
For Each Elt In Arr
If InStr(1, NomFeuille, Elt, vbTextCompare) <> 0 Then
MsgBox "Caractère interdit """ & Elt & _
""" dans le nom de la feuille."
Ok = True
End If
Next

'Est-ce que le nom existe déjà ?
For a = 1 To NbSheets
If UCase(Sheets(a).Name) = UCase(NomFeuille) Then
MsgBox "Ce nom existe déjà."
Ok = True
End If
Next
Loop Until Ok = False

Worksheets.Add.Name = NomFeuille
End Sub
'--------------------------------


Salutations!





"picmin" a écrit dans le message de news:
salut à tous,
voila, j'ai deux problèmes :
je lance une macro qui pose une question à l'utilisateur, celui ci répond
par oui ou non. Si il répond "non", il ne se passe rien; si il répond "oui",
une autre macro doit se lancer. cependant, après la réponse "oui", ma macro
ne se lance pas, pouvez vous m'aider svp?
Mon autre problème est le suivant:
je lance automatiquement la création d'un feuille à chaque démarrage d'une
macro, ces nouvelles feuilles ont toutes un nom différent.
J'aimerais que si le nom d'une feuille existe déjà, un message d'erreur
apparaisse au lieu d'avoir une insertion d'une "feuille (2)".
voila mes problèmes, si vous avez des idées,n'hésitez pas svp. Merci d'avance.