Besoin d'aide sur les boites de dialogues.

Thhrsa

XLDnaute Nouveau
Bonjour à tous.

dans une VBA je veux créer une boite me permettant de choisir "Toto" ou bien "Titi", sachant que j'ai besoin de récupérer l'info afin de renommer l'onglet en fonction de...

Je voulais partir sur une boite avec une valeur pas défaut ("toto") avec une boite me demandant:
Est-ce "Toto" OUI / NON

Dans ce cas une nouvelle boite de dialogue me proposant de ce fait "Titi" par défaut.

Pas évident à expliquer.

Merci aux experts

Thh
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous.

dans une VBA je veux créer une boite me permettant de choisir "Toto" ou bien "Titi", sachant que j'ai besoin de récupérer l'info afin de renommer l'onglet en fonction de...

Je voulais partir sur une boite avec une valeur pas défaut ("toto") avec une boite me demandant:
Est-ce "Toto" OUI / NON

Dans ce cas une nouvelle boite de dialogue me proposant de ce fait "Titi" par défaut.

Pas évident à expliquer.

Merci aux experts

Thh
Bonjour,
Essaye ceci
VB:
Sub ChoisirNom()
Dim Nom As String
Nom = InputBox("Entrez un nouveau nom pour la feuille ''" & ActiveSheet.Name & "''" & vbLf & "Choix disponible ''Titi'' ou ''Toto'' ", "Saisie", ActiveSheet.Name)
If Nom = "" Then Exit Sub
If UCase(Nom) <> "TOTO" And UCase(Nom) <> "TITI" Then
MsgBox "Le nom : " & Nom & vbLf & "Choix non disponible.", , "Erreur de saisie"
Exit Sub
End If
ActiveSheet.Name = Nom
End Sub

Edit: Avec la proposition de l'autre nom par défaut
Code:
Sub ChoisirNom()
Dim Nom As String, Autre As String
Autre = IIf(UCase(ActiveSheet.Name) = "TOTO", "TITI", "TOTO")
Nom = InputBox("Entrez un nouveau nom pour la feuille ''" & ActiveSheet.Name & "''" & vbLf & "Choix disponible ''Titi'' ou ''Toto'' ", "Saisie", Autre)
If Nom = "" Then Exit Sub
If UCase(Nom) <> "TOTO" And UCase(Nom) <> "TITI" Then
MsgBox "Le nom : " & Nom & vbLf & "Choix non disponible.", , "Erreur de saisie"
Exit Sub
End If
ActiveSheet.Name = Nom
End Sub

OU par OUI/NON
VB:
Sub ChoisirNom()
Dim Nom As String
Nom = IIf(UCase(ActiveSheet.Name) = "TOTO", "Titi", "Toto")
If MsgBox("Le nom de la feuille est :''" & ActiveSheet.Name & "''" & vbLf & "Voulez-vous renommer la feuille : " & Nom, 292, "Saisie") = 6 Then
ActiveSheet.Name = Nom
End If
End Sub
 
Dernière édition:

Theze

XLDnaute Occasionnel
Bonjour,

Donc, si je récapitule, tu veux une première boite demandant si le nom "Toto" convient, si oui la feuille sera nommée ainsi, dans le cas où c'est non, une seconde boite proposera le nom "Titi" ?
Je pense qu'une seule boite de message suffit, un champ qui à l'ouverture sera pré-rempli avec Toto et si il ne convient pas à l'utilisateur, il n'aura qu'à le modifier. Un exemple simple avec un InputBox :
Code:
Sub Test()

    Dim NomFeuille  As String
       
    NomFeuille = InputBox("Modifier le nom si il ne convient pas !", "Nom de la feuille", "Toto")
       
    'si le champ est vide ou clic sur le bouton "Annuler"
    If NomFeuille = "" Then: MsgBox "La feuille ne sera pas renommée !": Exit Sub
   
    'sinon, renomme
    ActiveSheet.Name = NomFeuille
   
End Sub
 

Thhrsa

XLDnaute Nouveau
Merci Jacky67, merci Theze.

Autant je m'amuse, enfin je bricole avec la VBA, autant, j'ai encore du mal avec les boites de dialogue.

Oui Theze, c'est ce dont j'avais besoin:
Toto par défaut, si non, dans ce cas Titi, sachant que je dois récupérer l'info afin de renommer l'onglet.

Merci à vous

PS: Pas encore votre niveau pour participer aux réponses.... Dommage.

Encore merci
 

Thhrsa

XLDnaute Nouveau
Merci a Jacky67, Theze.

Pour être plus clair:
Dans la réponse seulement 2 choix possible. Titi ou Toto sachant que Titi est part défaut
Donc si j'accepte Titi, l'onglet sera renommer Titi.
Si je refuse Titi, l'onglet doit être renommer Toto

Mais vos réponses mes plaisent, et me servirons pour d'autres projets.

Merci à vous.

Thh
 

Jacky67

XLDnaute Barbatruc
Dans la réponse seulement 2 choix possible. Titi ou Toto sachant que Titi est part défaut
Donc si j'accepte Titi, l'onglet sera renommer Titi.
Thh
Re...
Alors ceci devrait faire l'affaire
Code:
Sub ChoisirNom()
Dim Nom As String, autre As String
Nom = IIf(UCase(ActiveSheet.Name) = "TITI", "Toto", "Titi")
If MsgBox("Le nom de la feuille est :''" & ActiveSheet.Name & "''" & vbLf & "Voulez-vous garder ce nom ?", 292, "Saisie") = 7 Then
ActiveSheet.Name = Nom
End If
End Sub
 

Thhrsa

XLDnaute Nouveau
Merci Jacky67.

C'est presque cela !!!
Mais j'ai omis de donner une indication.
L'onglet de l'extraction porte un nom que je dois systématiquement renommer en Toto ou bien Titi
Donc Jacky (si je peux me permettre) la VBA fonctionne dans le cas où l'onglet comporte déjà le bon nom (en l'occurrence Titi par défaut)

Je réitère ma demande:
Extraction SQL
L'onglet comporte un nom à la c.....
Celui-ci doit être renommer soit sous le nom de Titi, soit sous le nom de Toto.
Pas d'autre choix possible

Jacky, j'ai essayé de modifier ta VBA pour prendre en compte mon problème....
Pas réussi.
Je dois être fatigué...

Merci à tous

cdt
 

Jacky67

XLDnaute Barbatruc
Merci Jacky67.

L'onglet de l'extraction porte un nom que je dois systématiquement renommer en Toto ou bien Titi
Donc Jacky (si je peux me permettre) la VBA fonctionne dans le cas où l'onglet comporte déjà le bon nom (en l'occurrence Titi par défaut)

cdt
Re..
Ben as-tu testé en changeant le nom ?
Sinon en poste #3 il y a 3 possibilité différentes...
Testé???
En pj
1 clic sur "non"=Titi
1 autre clic sur "non"=Toto

Une dernière version (1)
Avec clic sur Oui=Titi
Avec clic sur Non=Toto

Un toute dernière avec une liste de validation (2)
Sélection du nom en cellule A2
 

Pièces jointes

  • changer nom toto (1).xlsm
    15 KB · Affichages: 43
  • changer nom toto.xlsm
    15 KB · Affichages: 31
  • changer nom toto (2) .xlsm
    14 KB · Affichages: 38
Dernière édition:

Si...

XLDnaute Barbatruc
Salut

2 autres exemples, le premier avec 2 propositions, le second avec changement des 2 noms en même temps (pourquoi pas ?).
 

Pièces jointes

  • Changement Nom Onglet (VBA).xlsm
    23 KB · Affichages: 45
  • Changement Nom 2 Onglets (VBA).xlsm
    17.3 KB · Affichages: 39

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Une autre proposition avec un Userform.
  • par défaut, les options sont définies pour renommer la feuille active avec le nom Toto
  • par option, on peut aussi la renommer Titi
  • par option, on peut aussi la renommer avec un autre nom
  • on peut aussi renommer d'autres feuilles
  • pour quitter la boite de dialogue, bouton 'Annuler' ou Escape

Les deux noms Toto et Titi sont initialisés par les constantes N1 et N2 en début du code.
Le code principal se trouve entièrement dans le module de code de Userform1

edit 10:23 -> version corrigée
 

Pièces jointes

  • Thhrsa- dial box- v1.xlsm
    30.6 KB · Affichages: 28
Dernière édition:

Si...

XLDnaute Barbatruc
re

Je suivais TotoTiti :) mais, hélas, il ne passe plus nous inspirer.

Dans le cas d’un nombre élevé de changements, comme ma pomme :), j’avais, pensé utiliser une autre boîte (UserForm).
Puisque c’est fait, de façon plus simpliste que la sienne, je l’ajoute pour ceux qui pourraient s’en inspirer.
 

Pièces jointes

  • Changement Nom Multi Onglets.xlsm
    23.4 KB · Affichages: 47

Thhrsa

XLDnaute Nouveau
Bonsoir à tous.

Je n'ai plus qu'à vous dire un grand merci (Quoique non: On remercie, lorsqu'on a plus besoin d'eux.....) pour toutes ces propositions de codes.

Grace à vous j'ai avancé sur mon code et cela me fera gagner un temps fou.
Dans un premier temps cette VBA n'est que le début d'une automatisation complète de création de fichiers mensuels et rébarbatifs.

Je n'ai pas votre talent!
J'ai appris par moi même, et parfois je bloque sur des choses qui vous paraissent fort simple.

Je garde précieusement vos codes.
Ils me serviront ultérieurement pour d'autres créations

Je reviendrais vers vous pour mes prochaines créations.
Merci à Excel-Downloads pour ces échanges.

Cordialement
Thierry H
 

Discussions similaires

Statistiques des forums

Discussions
312 268
Messages
2 086 672
Membres
103 363
dernier inscrit
brian0496