Lancement d'une sous procédure et retour à la ligne pour poursuivre

Votre fichier en retour pour test et dans lequel j'ai modifié :
- Les userforms RDV, Patientel et Bebe : modifications des codes "ajout et" ajout de code à l'ouverture des usf
- Ajout des noms dans le gestionnaire de noms et suppression de ce qui ne sert pas
- Suppression des colonnes M et N (maman et bebe) dans la feuille Liste

Il est supposé que vous procédez comme ceci :
1. Ajout d'une patiente avec l'userform "Patiente"
2. Ajout des bébés éventuels par rapport à la patiente. Cela implique une ligne par bebe et que la feuille "bebe" contiendra des doublons dans la colonne A "Refpatiente".
3. Ajout des rendez-vous éventuels.

Les comboboxes "patiente" et" bebe" pour la prise de rendez-vous implique que vous avez procédé au préalable à l'entrée des infos au point 1 puis au point 2

Je n'ai encore rien modifié au niveau Userforms Info patiente et URSSAF
Les anciens codes sont toujours là mais sont désactivés

Crodialement

16fichier-leger-v2.zip (301.95 Ko)

Merci beaucoup

Je vais décortiquer les lignes dont certaines je ne connaissais pas

C'est exactement ce dont j'ai besoin. Je transpose dans mon fichier

Encore merci de votre aide

C'est exactement ce dont j'ai besoin. Je transpose dans mon fichier

Je ferais le contraire car j'ai modifié quand même certaines choses dans le fichier. Je vous conseille donc de repartir de celui

Je viens de faire un essai.

Pour la saisie d'une nouvelle maman pas de souci

Pour la saisie du bebe, j'ai un message Erreur d'exécution '70'. Accés Refusé

Débogage

Il m'ouvre le ModuleOuverturefrmBebe et la ligne frmBebe.show est en jaune

?

Il m'ouvre le ModuleOuverturefrmBebe et la ligne frmBebe.show est en jaune

Vous cliquez sur quel bouton pour ouvrir cette userform et est-ce que le souci est dans le fichier que j'ai posté ?

A noter que vous auriez pu regrouper toutes les macros d'ouverture Userform dans un seul module

Edit : le souci peut venir de la macro Initialize qui se trouve dans le frmbebe. Par exemple, suit à une mauvaise définition des noms utilisés par rapport à ceux définis dans le gestionnaire de noms.

en lançant frmbebe de votre fichier (rien dans maman, j'ai donc créé une maman) rien dans bebe. Il s'ouvre bien

Une fois dans bebe avec une liste de mamans et de bebes, initialyse fonctionne puis passe On Error Goto 0 et le blocage se fait au passage de Me. cboPatiente.AddItem Item

Je vois bien dans la boucle le listing des mamans se former. tablo est virtuel ? J'ai vérifié les noms dans le gestionnaire de noms et je n'ai rien vu de particulier

la boucle for each C fonctionne bien. Je vous les noms des mamans défiler. AU passage de On Error c.value=<Variable objet ou variable de bloc With non définie>

puis for each item in tablo (Item le premier nom de maman) et bogage sur Me.cboPatiente.AddItem Item

Il est très difficile de reprendre les données existantes et de les intégrer dans votre fichier. Celui que je vous ai envoyé était un alléger

Je n'ai pas l'impression que vous avez bien lu le processus de mon post précédent (les points1, 2 et 3)

Une fois dans bebe avec une liste de mamans et de bebes, initialyse fonctionne puis passe On Error Goto 0 et le blocage se fait au passage de Me. cboPatiente.AddItem Item

Quelle est la valeur de Item à ce moment là ?

AU passage de On Error c.value=

on error C.value ????? vous avez mal recopié le code

EDIT :

Si vous êtes sûr de ne jamais avoir de doublons en feuille patiente (ce qui serait logique), vous pourriez remplace le code initialize dans le frmBebe par celui ci-dessous :

Private Sub UserForm_Initialize()
cboPatiente.List = Worksheets("Patiente").ListObjects("Tpatientel").ListColumns(1).DataBodyRange.Value
End Sub

Par contre, il serait intéressant de vérifier que la maman n'existe pas déjà lorsque vous entrez une nouvelle maman avec le frmpatiente (cela je ne l'ai pas prévu)

SI j'ai bien compris mais mon fichier comporte des noms de bebe dans Bebe et des noms de mamans. Je lance avec F8 frmBebe. Il arrive directement dans UserForm_Initialize().

La boucle For each C (dernière patient) C=VINCENT Carina tablo.add c.Value VINCENT Carina, CStr (C.Value) VINCENT Carina

La boucle For each Item in Tablo Item=vide

sortie de la première boucle

On Error Goto 0

Item = ABTS Marine (la première maman) puis bug. C.Value passe à :C.Value=<Variable objet ou variable de bloc With non définie> pour donner la main à la boucle For Each Item. Il ne lit que le premier nom puis bug

Je vais vérifier l'intégrité de la base Patiente

Bon prenez le fichier que j'ai posté

Dans la feuille Patiente, mettez ceci en colonne A : en A2 -> MamanA, A3 -> MamanB, A4 -> MamanC

Lancer le frmbebe puis allez dans la liste déroulante

Le même problème au même endroit avec frmRdV

Alors donnez moi votre fichier que j'analyse car je n'ai rien comme erreur

En fonction de ce que je viens de dire regardez la vue

presse papier02

Edit : vous pouvez éventuellement déplacer le ON ERROR RESUME NEXT et le mettre juste avant le FOR EACH C.....

Je vous joint le fichier. J'ai retiré

11logiciel.zip (334.91 Ko)

les données sensibles mais laissé le principal

Bonsoir

Je viens de regarder en vitesse. Le souci est dans les Rowssource que vous avez laissées.

1. dans le frmbebe, supprimez la valeur Rowssource que vous avez mise dans la cboPatiente.
2. dans le frmrdv, supprimez aussi toutes les rowssource liées aux comboboxes
3. Dans le gestionnaire de noms, vous pouvez aussi supprimer les noms que vous avez utilisés pour les rowssources
4. Supprimez aussi les colonnes M et N dans la feuille liste et le noms associés (je vous en ai parlé avant)

NB : Vu que toutes les référence sont uniques dans la feuille Patiente, n'oubliez pas que vous pouvez aussi remplacer le code Initialize dans le frmbebe par celui que je vous ai donné à 18h06.
Le code initialize dans le frmrdv doit rester tel quel. Toutefois en supprimant les rowssources dans les combobox lieux, mode paiement, statut et CR , il faudra que je vous donne les 4 lignes à ajouter dans le code initialize pour ajouter les valeurs dans les combo

Désolé je ne vous avais pas expliqué cela. Mais évitez toutes les rowssource. On a toujours un souci à un moment avec cette définition. Préférez toujours la méthode additem.

Crdlt

EDIT : Voilà les 4 lignes à rajouter dans le code initialize dans la frmRDV et ce, juste avant le END SUB

With Worksheets("Liste")
    cboLieu.List = .ListObjects("TLieux").DataBodyRange.Value
    cboModeP.List = .ListObjects("LModePaiement").DataBodyRange.Value
    cboStatut.List = .ListObjects("LStatut").DataBodyRange.Value
    cboCR.List = .ListObjects("TCR").DataBodyRange.Value
End With

Il y a pas mal de noms à supprimer dans le gestionnaire de noms (liste maman, mamans, patiente, Lieux, Tableau12, listebebe)

J'ai effectué les modifications

Pouvez-vous éclaircir ma lanterne sur l'utilisation AddItem en lieu et place des rowsource que je comprenne bien. Merci

Rien ne presse c'est le week end et je ne voudrai pas paraitre exigeant.

Merci de l'aide, elle m'est très précieuse.

Après modif il semblerait que cela fonctionne. Je vais en profiter pour faire des tests (poursuivre ma saisie en retard) avec les rowsource restantes et ferai les dernières modif ensuite.

Merci encore

cdlt

Bonjour,

Pouvez-vous éclaircir ma lanterne sur l'utilisation AddItem en lieu et place des rowsource que je comprenne bien. Merci

Regardez ce lien dans la section Formation --> https://www.excel-pratique.com/fr/vba/controles_suite
Au milieu de la page vous avez un exemple sur la méthode ADDITEM

Pour ma part, je préfère cette méthode ADDITEM ou définir un nom de plage et le reprendre dans le code plutôt que d'utiliser ce nom de plage défini dans la propriété Rowssource.

Crdlt

Bonjour,

Merci encore de votre précieuse aide et toutes vos explications.

Je vais mettre en pratique ce que vous m'avez appris dans d'autres applications. Pour le fichier en question, il fonctionne à merveille.

Merci

Bonjour Dan,

J'ai voulu reprendre la saisie de mes rendez-vous et j'ai obtenu ceci :

image

avec ensuite quand je clique sur Débogage

image

Depuis la dernière fois je n'ai rien fait (trop de travail) et aujourd'hui lors de la mise à jour de ma base cela.

Avez-vous une idée d'où le problème pourrais venir ? Merci de votre aide et excusez-moi de vous solliciter de nouveau.

Cdlt

Je crois avoir trouvé

Utilisation de Rowsource encore présente alors que dans userform c'est liste.

Corrigé

Merci quand même

Bonjour

Utilisation de Rowsource encore présente alors que dans userform c'est liste.

cela aurait été ma suggestion ...allez voir si un Rowsource ne traine pas...

Cordialement

Bonjour,

J'ai vérifié et c'est OK, mais j'ai voulu automatiser la création du n° de devis et du n° facture et ça ne marche pas. Il bug dans la boucle If sur l'écriture. Pouvez-vous me dire pourquoi, depuis hier soir je fais des essais mais sans succès

9code.docx (13.16 Ko)
Rechercher des sujets similaires à "lancement procedure retour ligne poursuivre"