Formulaire de saisie macro - Erreur de compilation end sub attendu

Bonjour,

Je vous contacte, car je rencontre un problème dans ma macro.

Je suis novice dans le domaine, donc mon descriptif ne sera pas très constructif. Désolée

Pour vous expliquer le projet, je suis en train de faire une tableau de suivi des activités pour des pilotes.

Ils devront saisir leurs activités via le formulaire, en cliquant sur le bouton "saisir une action".

Dans la macro, j'ai mis des champs à saisir obligatoirement, des champs à valeurs numériques uniquement et des listes déroulantes.

Ci-dessous mes petits problèmes rencontrés :

- pour personnaliser davantage ce formulaire, j'ai voulu mettre les labels en rouge lorsque le pilote n'aurait pas saisit un champ obligatoire. Mais cela ne fonctionne pas

- si le formulaire est complet, il insère les valeurs sur la feuille. Par contre, lorsqu'il est incomplet, les valeurs sont quand même intégrées. Hors, je voulais le contraire

- si le pilote a plusieurs activités à saisir, au lieu d'enregistrer, fermer et rouvrir le formulaire, j'ai crée le bouton dupliquer. En cliquant sur ce bouton, les valeurs qui ont été saisies s'effacent tout en stockant les valeurs saisies précédemment

- j'aimerais créer une macro pour additionner le temps total estimé des heures travaillées, mais je ne sais pas comment faire... Pourriez-vous me suggérer la fonction, formule ?

- si vous avez des suggestions ou des remarques, je suis preneuse !

Merci à vous pour votre aide précieuse

Un bon courage dans vos fonctions.

Cordialement,

Bonjour

- pour personnaliser davantage ce formulaire, j'ai voulu mettre les labels en rouge lorsque le pilote n'aurait pas saisit un champ obligatoire. Mais cela ne fonctionne pas

Quels champs ou plutôt rubrique de l'USF doivent être en couleur ? On peut aussi faire l'inverse. Mettre en couleur ce qui doit être complété et supprimer la couleur lorsque complété...

Une chose que je vois aussi, dans la page 2 de l'USF pourquoi nommez-vous la combobox --> CboPlateauDom1 et les autres CboPlateauDomaineContributeur2. Je la nommerais CboPlateauDomaineContributeur1 c'est plus facile de s'y retrouver dans le code.

Cordialement

"Quels champs ou plutôt rubrique de l'USF doivent être en couleur ? On peut aussi faire l'inverse. Mettre en couleur ce qui doit être complété et supprimer la couleur lorsque complété..."

Quand le pilote n'a pas saisit un champ obligatoire, j'aurais voulu que le ou les label(s) se colore(nt) en rouge...

Merci pour la suggestion du nommage des combobox ! Je prends note !

Par contre, j'ai toujours le même problème. Mon formulaire est pour l'instant inexploitable.

Quand le formulaire est incomplet à la saisie, il enregistre quand même dans le tableau les valeurs, alors que je voudrais qu'elles ne s'incrémentent pas....

1. En fait, quand je clique sur valider et que les champs ne sont pas tous saisis, cela m'indique que le formulaire est incomplet.

'Saisie champ obligatoire

Voici ma formule :

If CboPrenomNom.Value = "" Or CboPlateauDomaine.Value = "" Or CboPriorite.Value = "" Or TxtPersOrigine.Value = "" Or TxtCanal.Value = "" Or CboTypeActivite.Value = "" Or TxtSujet.Value = "" Or CboEtat.Value = "" Or TxtDateDemande.Value = "" Or TxtDateDebut.Value = "" Or TxtDateFinEstimee.Value = "" Or CboBatiment.Value = "" Or TxtTpsEstime.Value = "" Or TxtDescription.Value = "" Then

MsgBox "Formulaire incomplet"

Je pense que ma formule n'est pas complète. Il manque une autre formule qui permettrait de bloquer l'incrémentation dans le tableau lorsque le formulaire n'a pas été correctement saisi.

2. La fenêtre "attention" apparait seulement quand je clique sur enregistrer. Hors, je voudrais qu'elle apparaisse, uniquement si le pilote a saisi une valeur textuelle dans un champ numérique.

Ma formule :

If Not IsNumeric(TxtTpsEstime) Or Not IsNumeric(TxtTpsEstimeContributeur1) Or Not IsNumeric(TxtTpsEstimeContributeur2) Or Not IsNumeric(TxtTpsEstimeContributeur3) Or Not IsNumeric(TxtTpsEstimeContributeur4) Or Not IsNumeric(TxtTpsEstimeContributeur5) Then

MsgBox "Seules les valeurs numériques sont autorisées.", vbInformation + vbOKOnly, "Attention"

Merci encore pour votre aide !

Re

1. En fait, quand je clique sur valider et que les champs ne sont pas tous saisis, cela m'indique que le formulaire est incomplet.

Ok je vais voir cela. Je reviens vers vous plus tard

Vous pourriez utiliser ce fichier sous Excel MAC aussi ??

Cordialement

Merci beaucoup !

Je suis sur Windows 7 professionnel.

Je n'ai pas de Mac.

Re,

1. En fait, quand je clique sur valider et que les champs ne sont pas tous saisis, cela m'indique que le formulaire est incomplet.

Voici votre fichier dans lequel j'ai apporté les modifications suivantes :

  • Suppression des données Listexx que vous aviez placées dans ROWSOURCE au profit du chargement des données dans la macro USERFORM_INITIALIZE. Toutes les combobox sont complétées à l'exécution de l'userform en évitant le Rowsource (à éviter, cela pose parfois des soucis d'utiliser cette fonction)
  • Dans la macro Private Sub BtnEnregistrer_Click() ajout du code (au début) pour colorier les rubriques non complétées

J'ai désactivé les lignes plus bas dans le code car je pense que cela concernait des essais que vous avez tenté de faire pour placer une couleur dans les rubriques.

Veillez à continuer votre projet en repartant de ce fichier.

Autre chose : Pour TxtSaisieActivites et TxtDITF il serait intéressant en remplaçant par un LABEL ou par exemple renommer par LBL plutôt que Txt car c'est plutôt à considérer comme label que des textbox

Cordialement

Bonjour Dan !

Merci beaucoup pour la simplification !

Par contre, je me débrouille à peine dans les formulations MACRO.

Je voudrais savoir, comment avez vous fait pour définir la formule ci-dessous :

.CboPrenomNom.List() = Range("Listenom").Value

D'où vient "Listenom" ?

Comme, celle-ci : .Controls("CboPlateauDomaineContributeur" & i).List = Range("ListePlateau").Value

Si vous voulez tout savoir, j'ai remplacé mes listes en mettant les vraies données. Quand j'ai voulu exécuter le formulaire cela n'a pas fonctionné. "L'erreur d'exécution "1004" La méthode 'Range de l'objet'_Global a échoué."

Pouvez-vous m'éclaircir siouplé ?

Re

Je voudrais savoir, comment avez vous fait pour définir la formule ci-dessous :

.CboPrenomNom.List() = Range("Listenom").Value

D'où vient "Listenom" ?

Listenom vient du nom que vous avez défini. Vous le trouvez sous l'onglet FORMULES -> Gestionnaire de nom

Idem pour Listeplateau

Je les ai supprimés de Rowsource pour les mettre dans le code afin que les données soient chargées dans les combobox à l'ouverture de l'USF.

Pour la combobox "CboBatiment", il faut définir une liste dans la feuille Mes listes je suppose.

Si vous voulez tout savoir, j'ai remplacé mes listes en mettant les vraies données. Quand j'ai voulu exécuter le formulaire cela n'a pas fonctionné. "L'erreur d'exécution "1004" La méthode 'Range de l'objet'_Global a échoué."

Que voulez vous dire par remplacer mes listes ??? Dans le fichier que je vous ai donné remplacez les noms dans les listes et cela doit fonctionner

Rechercher des sujets similaires à "formulaire saisie macro erreur compilation end sub attendu"