Appeler une macro si nom inexistant

Hello
j’ai un fichier d’attribution de place pour un loto avec des macros et actuellement si je veut inscrire une personne sur l’onglet « Table_Resa » et que cette personne est pas dans l’onglet « Contact », pour le moment, je le rajoute avec la macro du modul4 et je voudrais que je puisse rajouter sans sortir de l’onglet la personne à l’onglet « Contact »
j’ai mis ce code dans le modul 1, mais elle tourne en boucle et ne ressort pas de la macro

If plageNoms.Cells(i, 1).Value = "" Then
        Call AjoutContact
    End If

Une âme charitable pourrait elle jeter un œil.
Merci d’avance

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

macro pour module 4
Sub AjouterContact2(Nom As String)
     Dim r, c, iNom, LO
     If Len(Nom) > 0 Then
          Set LO = Range("Tab_Contacts").ListObject
          iNom = LO.ListColumns("Nom").Index
          r = Application.IfError(Application.Match(Nom, LO.ListColumns(iNom).DataBodyRange, 0), 0)     'nom connu ? 0=inconnu
          If r = 0 Then
               Set c = LO.ListRows.Add.Range
               c.Cells(1, iNom).Value = Nom
               c.Cells(1, iNom + 1).Value = InputBox("Prénom", "Saisie Prénom")
               c.Cells(1, iNom + 2).Value = InputBox("Contact", "Saisie N° Téléphone")
          End If
     End If
End Sub

macro pour module de la feuille “table_résa”

Private Sub Worksheet_Change(ByVal Target As Range)
     With Target
          If .Cells.Count = 1 Then
               If Len(.Value) > 0 Then
                    If IsNumeric(.Offset(, 2).Value) And Len(.Offset(, 2).Value) Then AjouterContact2 .Value
               End If
          End If
     End With
End Sub

Merci Cow, mais je voudrais garder ma macro qui est déjà activée par le bouton enregistrement sur l’onglet table resa qui recherche déjà dans la collection de nom de l’onglet contact s’il y a un prénom, parce qu’il arrive que j’ai deux fois le même nom et dans ces cas dans l’onglet Réservation, il faut mettre le bon nom avec le bon prénom…
En somme, je renseigne mes resa sur l’onglet table_resa je clique sur enregistrement et la, la macro met le nom dans l’onglet réservation en vérifiant dans l’onglet contact s’il y a éventuellement un doublon avec un prénom, et c’est juste avec cette vérification que je voudrais que la macro vérifie que le nom existe, et s’il n’existe pas, à ce moment lancer la macro pour rajouter ce « client » dans l’onglet contact, et une fois le "client rajouté la macro continue a enregistré le client dans le tableau de l’onglet reservation…

(supprimé, demande de taz067)

Hello
ça fonctionne comme prévu
par contre, je viens de m’apercevoir que j’avais uploader le mauvais fichier, j’avais préparé un fichier avec juste 3 onglets comme celui que je viens de modifier dans ma demande initial…et sans données confidentielles… tu peux le supprimer, je l’ai récupéré

Hello Cow
Je me bats avec ta macro en essayant de l’intégrer à mon fichier de travail, mais elle me crée des décalages, je ne me souviens plus si entre la version que j’avais mise hier et celle utilisée, je n’avais pas fait des modifs dans les structures des tableaux, je pense que oui, donc j’ai remis une copie de mon fichier de travail épurée(avec juste les onglets nécessaires au traitement) et anonymisé cette fois-ci
voilà donc mon fichier de travail, par contre, te serait-il, possible d’y jeter un œil, j’ai gardé les macros d’origine
Réservation loto.xlsm (153,8 Ko)

je pense qu’on a déjà eu cette discussion concernant les tableaux structurés, c’est inutile d’avoir des lignes vides, ce n’est pas pratique et très inefficient. La macro “AjouteContact” ajoute une nouvelle ligne en dessous du tableau, après +600 lignes vides. C’est çà le décalage ?

Réservation loto.xlsm (158,3 Ko)

Et vous voulez modifier vos macros ou (comme je l’ai fait) les miennes ?

Attention les lignes vide dans contact ne sont pas vide chez moi, ce sont des lignes qui normalement sont remplis avec les contacts que j’ai effacés
le décalage je l’ai dans le tableau Tab_resa ou quand ta macro ajoute un contact me le met dans la première ligne et décalé d’une colonne

Si cela est possible garder mes macros du moins celle pour enregistré sur l’onglet table resa j’avais essayer de mettre un

if PlageNoms.value = " " then
Call AjoutContacts
End If

Mais ca me tourne en boucle

:zany_face: Et en plus sur pc le forum plante…

ajouter “option compare text” comme première ligne dans votre module1 (comme çà les majuscules et les miniscules sont égaux)

aPrenom est maintenant un variable publique, donc accèssible dans module1

Réservation loto (1).xlsm (153,3 Ko)

Je l’ai mis dans mon fichier de travail et d’après mes premiers tests, c’est bon

1 « J'aime »

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