Petite modif de code

Hello
J’ai dans mon fichier de réservation plusieurs macros qui fonctionnent très bien. Actuellement, lorsque je mets une nouvelle réservation, celle-ci ouvre la macro Ajout de contact si la personne ne figure pas sur mon listing, et affiche un input box en cas de doublon de nom dans mon fichier contact, mais si aucun prénom ne correspond et que je sélectionne 0 je voudrais qu’à ce moment la macro Ajout contact se lance pour l’ajout du nouveau contact, et qu’une fois le nouveau contact enregistré la sauvegarde se poursuive.
je voudrais continuer avec les macros actuel
j’ai tenter comme dans la première un call ajout_contact dans le Do apres le case else de la macro ChercherPrenom qui actuellement sort de la macro si la reponse est vide
Merci d’avance pour vos lumières.

Option Compare Text

Sub Sauvegarde()
     Dim numero As String
     Dim cellule As Range
     Dim ligne As Integer                    '*** Ligne declarer en tant que variable entier

     ligne = 2                               '*** depart de la variable ligne

     Selection.Name = "sauve"
     numero = Application.InputBox("Cliquez sur le numero de la table", "Saisie numéro")
     Application.ScreenUpdating = False

     '***Rennomer la feuille en cas de changement

     Sheets("Réservation").Select
     Sheets("Réservation").Unprotect

     '***Atteindre la premiere cellule vide

     While Sheets("Réservation").Cells(ligne, 2) <> ""
          ligne = ligne + 1
     Wend


     '*** Selection de la cellule date

     Sheets("Réservation").Cells(ligne, 2).Select



     '***.........................***
     Selection = Now()
     Selection.Offset(0, 1) = Range("sauve").Item(1, 1)
     Selection.Offset(0, 3) = Range("sauve").Item(1, 2)
     Selection.Offset(0, 5) = CInt(numero)

     '***Rennomer la feuille en cas de changement***

     'Sheets("Table_Résa").Select

     Application.ScreenUpdating = True
     'MsgBox "Nouveau participant enregistré", vbOKOnly, "Information participant"
     Call ChercherPrenom
      Call tri_resa
     Sheets("Réservation").Protect
     Exit Sub

End Sub

Sub ChercherPrenom()
     Dim ws    As Worksheet
     Dim nomRecherche As String
     Dim plageNoms As Range, plagePrenoms As Range
     Dim prenomsTrouves As Collection
     Dim i As Long, reponse As String
     Dim listeChoix As String
     Dim ligneNom As Long

     ' Définir la feuille contact
     Set ws = ThisWorkbook.Sheets("Contacts")

     ' Récupérer la ligne active dans Tab_Resa[NOM]
     ligneNom = ActiveCell.Row
     nomRecherche = Range("Tab_Resa[NOM]").Cells(ligneNom - Range("Tab_Resa[NOM]").Row + 1)

     ' Définir les plages de recherche
     Set plageNoms = ws.Range("Tab_Contacts[NOM]")
     Set plagePrenoms = ws.Range("Tab_Contacts[PRÉNOM]")


     ' Créer une collection pour stocker les prénoms trouvés
     Set prenomsTrouves = New Collection


     ' Rechercher tous les prénoms correspondants au nom
     For i = 1 To plageNoms.Rows.Count
          If plageNoms.Cells(i, 1).Value = nomRecherche Then
               On Error Resume Next
               prenomsTrouves.Add plagePrenoms.Cells(i, 1).Value
               On Error GoTo 0
          End If
     Next i

     ' Traiter selon le nombre de prénoms trouvés
     Select Case prenomsTrouves.Count
          Case 0
               aPrenom = ""                  'reset du prénom avant de lancer "AjoutContact"
               AjoutContact                  'ajouter un nouveau nom
               Range("Tab_Resa[PRÉNOM]").Cells(ligneNom - Range("Tab_Resa[PRÉNOM]").Row + 1) = aPrenom     'le prénom de "AjoutContact"
               'MsgBox "Aucun prénom trouvé pour ce nom."

          Case 1
               ' Un seul prénom trouvé - l'utiliser directement sur la même ligne
               Range("Tab_Resa[PRÉNOM]").Cells(ligneNom - Range("Tab_Resa[PRÉNOM]").Row + 1) = prenomsTrouves(1)

          Case Else
               ' Plusieurs prénoms trouvés - créer la liste pour l'InputBox
               listeChoix = "Plusieurs prénoms trouvés pour " & nomRecherche & vbNewLine & vbNewLine
               For i = 1 To prenomsTrouves.Count
                    listeChoix = listeChoix & i & ". " & prenomsTrouves(i) & vbNewLine
               Next i

               Do
                    ' Afficher l'InputBox avec la liste
                    reponse = InputBox(listeChoix & vbNewLine & _
                                       "Entrez le numéro du prénom choisi :", _
                                       "Choisir un prénom")

                    ' Si l'utilisateur annule
                    If reponse = "" Then
                         Exit Sub
                    End If

                    ' Vérifier si la réponse est valide
                    If IsNumeric(reponse) Then
                         If CInt(reponse) >= 1 And CInt(reponse) <= prenomsTrouves.Count Then
                              ' Réponse valide, écrire le prénom et sortir de la boucle
                              Range("Tab_Resa[PRÉNOM]").Cells(ligneNom - Range("Tab_Resa[PRÉNOM]").Row + 1) = prenomsTrouves(CInt(reponse))
                              Exit Do
                         Else
                              MsgBox "Numéro invalide. Veuillez choisir un numéro entre 1 et " & prenomsTrouves.Count
                         End If
                    Else
                         MsgBox "Veuillez entrer un numéro valide."
                    End If
               Loop
     End Select
     Commentaire.Show
End Sub

Bonjour,

Poste le classeur.

Daniel

Voilà, expurger des contacts actuels.
Dans ce cas-ci, je sélectionne les deux cellules où se trouvent le nom et celle à côté avec le nombre de places. puis je clique sur enregistrer.



et c’est là où la macro me propose les prénoms, je tape 0 et je veux pouvoir enregistrer un nouveau contact, donc appeler la macro ajout_contact, si aucun prénom ne correspond. mais uniquement si un nom a plusieurs prénoms.

Réservation loto.xlsm (195,8 Ko)

Essaie :

Réservation loto.xlsm (191,8 Ko)

Daniel

Ok ça m’ouvre bien la macro de saisie de contact, mais la saisie une fois faite et apres le message box

Il devrait m’afficher la sélection de prénoms, avec le nouveau prénom, je viens juste de saisir Ford John et il n’apparait pas dans la liste.

Ca a l’air de fonctionner. Je n’aime pas du tout le genre de rustine que je viens de coller. Teste :

Réservation loto.xlsm (192,5 Ko)

Daniel

Pour le moment ça fonctionne comme je veux, c’est l’essentiel.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.