VBA Excel demande aide

Bonsoir à tous,
voila mon problème, j'ai crée un userform dans lequel j'ai plusieurs textbox dont certaines ne doivent être remplies que par des chiffres.J'ai utilisé l'instruction if not isnumeric then... puis j'affiche un message et remet la textbox à vide avec l'instruction textbox1.text = "". Et c'est maintenant que çà se corse car lorsque j'ai rempli toutes mes textbox et que je valide mes données et que normalement mes textbox se vident, j'ai mon message de rentrer un nombre dans les textbox "numérique" qui vient et je ne sais pas comment éviter de lancer cette instruction à la validation des données.
C'est peut etre un peu confus mais si il y a quelqu'un qui veut bien m'aider je pourrai lui envoyer mon classeur xl
Merci en attendant

23 réponses

Résumé de la discussion

Le problème porte sur un formulaire VBA où certaines TextBox doivent accepter uniquement des chiffres et où IsNumeric déclenche des messages même après la vidange des champs lors de la validation. Des solutions préconisent de réinitialiser l’ensemble des contrôles après la saisie et d’enregistrer les données dans une feuille dédiée, en utilisant un bloc With pour vider TextBox1 à TextBox11 et ComboBox1. D’autres interventions insistent sur la suppression éventuelle du lien direct ContrôleSource et sur le contrôle de la logique de validation afin que l’erreur ne soit plus déclenchée au moment de l’enregistrement. En complément, certains échanges évoquent les difficultés liées à l’activation et à l’écriture dans la feuille Moteurs et à la gestion des contrôles qui alimentent les cellules.

Bobot (l’IA à votre service)
  1. Contributeur
    bonjour

    Je veux bien t'aider, mets ton classeur dans : http://cjoint.com/

    en enlevant le confidentiel, puis tu donnes l'adresse ici.

    à bientôt.
    0
    1. Salut gbinforme,
      c'est sympa de ta part de bien vouloir me donner un coup de main.
      Ci dessous l'adresse demandée, j'espère que çà fonctionnera.
      http://cjoint.com/?mslNJVDwmx
      Si tu as des questions, n'hésite pas !!
      Merci et bon dimanche
      0
    2. Modérateur
      @pkli54Salut,

      Et c'est maintenant que çà se corse car lorsque j'ai rempli toutes mes textbox et que je valide mes données et que normalement mes textbox se vident, j'ai mon message de rentrer un nombre dans les textbox "numérique" qui vient

      Private Sub TextBox2_Change()
      If Not IsNumeric(TextBox2.Text) Then
      MsgBox "Vous devez entrer un nombre."
      TextBox2.Text = ""
      End If
      End Sub

      Donc l'evenement Change de la zone texte veut dire que tout le temps que tu changes le contenu s'il n'est pas un nombre tu auras le MsgBox.

      Quand tu fait click sur OK tu vides les zones de texte donc en ce moment il y a un changement dans les zones de texte et l'evenement Change s'éxécute. Comme un contenu NULL n'est pas un nombre tu as le MsgBox.

      Tu dois supprimer dans ton code tous les lignes avec l'evenement Change et valide tes données au moment d'evenement Click du bouton OK.

      J'ai ajouté TextBoxN.SetFocus ( la zone à corrigée prend le focus)

      Sauvegarde ton code ensuite remplaces avec celui-là (j'ai mis en commentaire les lignes avec Change)
      
      
      Private Sub CommandButton2_Click()
      Feuilledesaisiemoteurs.Hide
      Rows(2).Select
      Selection.Delete
      End Sub
      
      
      
      'Private Sub TextBox2_Change()
      'If Not IsNumeric(TextBox2.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox2.Text = ""
      'End If
      'End Sub
      '
      '
      'Private Sub TextBox3_change()
      'If Not IsNumeric(TextBox3.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox3.Text = ""
      'End If
      'End Sub
      '
      '
      'Private Sub TextBox4_Change()
      'If Not IsNumeric(TextBox4.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox4.Text = ""
      'End If
      'End Sub
      '
      'Private Sub TextBox5_Change()
      'If Not IsNumeric(TextBox5.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox5.Text = ""
      'End If
      'End Sub
      
      
      Private Sub CommandButton1_Click()
      
      If Not IsNumeric(TextBox2.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Intensité nominale."
              TextBox2.Text = ""
              TextBox2.SetFocus
              Exit Sub
      ElseIf Not IsNumeric(TextBox3.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Phase 1."
              TextBox3.Text = ""
              TextBox3.SetFocus
              Exit Sub
      ElseIf Not IsNumeric(TextBox4.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Phase 2."
              TextBox4.Text = ""
              TextBox4.SetFocus
              Exit Sub
      ElseIf Not IsNumeric(TextBox5.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Phase 3."
              TextBox5.Text = ""
              TextBox5.SetFocus
              Exit Sub
      Else
      
          Worksheets("Moteurs").Activate
          Rows(2).Select
          Selection.Insert
          Rows(2).Select
          Selection.Insert
          With Feuilledesaisiemoteurs
              .TextBox1.Text = ""
              .TextBox2.Text = ""
              .TextBox3.Text = ""
              .TextBox4.Text = ""
              .TextBox5.Text = ""
              .TextBox6.Text = ""
              .TextBox7.Text = ""
              .TextBox8.Text = ""
              .TextBox9.Text = ""
              .TextBox10.Text = ""
              .ComboBox1.Text = ""
              .Textbox11.Text = ""
          End With
          Unload Me
      End If
      End Sub
      
      
      
      0
    3. @lami20jSalut lami20j,
      je te remercie de ta réponse, je m'en vais essayé tout çà et il se peut que je te mette encore à contribution si besoin, j'espère que çà ne te pose pas de problème ??
      je te tiens au courant si les modifs sont ok!!!
      merci encore à plus
      0
  2. Resalut lami20j,
    je viens de faire ce que tu m'a envoyer et cà fonctionne nickel mais...........car il y a toujours un mais, lorque que je valide mes données pour mon premier moteur, la feuille "moteurs" s'affiche et suis obliger de retourner à la page de garde et de cliquer sur le bouton nouveau moteur
    Je pense que c'est du au fait de la ligne suivante:
    Worksheets("Moteurs").Activate
    Si je la supprime comment faire pour que mes données soit copier au bon endroit sans faire apparaitre la feuille en question???

    Désolé de te déranger mais suis nouveau en vba
    merci
    0
    1. Modérateur
      Re,

      Je pense que c'est du au fait de la ligne suivante:
      Worksheets("Moteurs").Activate
      Si je la supprime comment faire pour que mes données soit copier au bon endroit sans faire apparaitre la feuille en question???

      Tu ne la supprimes pas. Elle te faut pour écrire tes données.

      Entre
      End With
      et
      Unload Me
      ajoute
      Worksheets("Page de garde").Activate


      Donc une fois le traitement terminé tu reviens sur la Page de garde

      Code complet
      Private Sub CommandButton2_Click()
      Feuilledesaisiemoteurs.Hide
      Rows(2).Select
      Selection.Delete
      End Sub
      
      
      
      'Private Sub TextBox2_Change()
      'If Not IsNumeric(TextBox2.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox2.Text = ""
      'End If
      'End Sub
      '
      '
      'Private Sub TextBox3_change()
      'If Not IsNumeric(TextBox3.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox3.Text = ""
      'End If
      'End Sub
      '
      '
      'Private Sub TextBox4_Change()
      'If Not IsNumeric(TextBox4.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox4.Text = ""
      'End If
      'End Sub
      '
      'Private Sub TextBox5_Change()
      'If Not IsNumeric(TextBox5.Text) Then
      'MsgBox "Vous devez entrer un nombre."
      'TextBox5.Text = ""
      'End If
      'End Sub
      
      
      Private Sub CommandButton1_Click()
      
      If Not IsNumeric(TextBox2.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Intensité nominale."
              TextBox2.Text = ""
              TextBox2.SetFocus
              Exit Sub
      ElseIf Not IsNumeric(TextBox3.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Phase 1."
              TextBox3.Text = ""
              TextBox3.SetFocus
              Exit Sub
      ElseIf Not IsNumeric(TextBox4.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Phase 2."
              TextBox4.Text = ""
              TextBox4.SetFocus
              Exit Sub
      ElseIf Not IsNumeric(TextBox5.Text) Then
              MsgBox "Vous devez entrer un nombre dans le champ - Phase 3."
              TextBox5.Text = ""
              TextBox5.SetFocus
              Exit Sub
      Else
      
          Worksheets("Moteurs").Activate
          Rows(2).Select
          Selection.Insert
          Rows(2).Select
          Selection.Insert
          With Feuilledesaisiemoteurs
              .TextBox1.Text = ""
              .TextBox2.Text = ""
              .TextBox3.Text = ""
              .TextBox4.Text = ""
              .TextBox5.Text = ""
              .TextBox6.Text = ""
              .TextBox7.Text = ""
              .TextBox8.Text = ""
              .TextBox9.Text = ""
              .TextBox10.Text = ""
              .ComboBox1.Text = ""
              .Textbox11.Text = ""
          End With
          Worksheets("Page de garde").Activate ' reviens dans la Page de garde
          Unload Me
      End If
      End Sub
      0
      1. Re,
        OK pour la ligne supplémentaire, mais j'ai du mal m'expliquer:
        quand je suis dans le userform, j'ai peut etre une dizaine de moteurs à rentrer et je voudrais éviter à chaque fois que je clique sur ok de revenir à la page de garde >nouveau moteur>rentrer les données ect ect...
        je devrais rajouter un bouton dans le userform pour valider les données et rester dans le userform puis avec un autre bouton sortir du userform ??
        qu'en penses tu ???
        comment faire pour écrire les données dans la bonne feuille sans quitter le userform et sans faire apparaitre en fond la feuille moteurs ???
        merci
        0
        1. Modérateur
          Ok, j'ai compris ce que tu veux.

          Dès que j'ai fait les modif je t'envoie le code.
          0
          1. c'est sympa, je fait des test de mon coté
            à plus
            merci encore
            0
        2. Modérateur
          D'abord quelques conseils:

          Essaie de donner des noms à tes objects (zone de texte, boutons, feuille...)

          TextBox2 ce n'est pas très clair et tu vois ça quand il faut corriger ou ajouter dans le code

          Comme TextBox2 c'est le champ pour Intensité nominale tu pourras nommé ta zone : txtIntesiteNominale ou txtIntensNom, etc...

          prefix txt pour savoir qu'il s'agit d'une zone de texte
          IntensitéNominale tu sais à quoi se réfère ta zone de texte.

          Des prefixes

          cmd pour CommandButton (cmdOk, cmdAnnuler - mieux que CommandButton1,...)
          lst pour ListBox
          opt pour OptionButton, etc....

          Revenons à ton code.

          Que veut qu'il se passe quand tu fait clic sur le bouton Annuler?

          Je vois dans ton code que tu caches la feuille de saisie et tu supprimes la ligne 2. Pourquoi? Tu veux annuler la dernière saisie?
          Si tu te contentes de cacher la feuille, sache qu'elle reste en mémoire. Il faut la déchargée. Par exemple avec UnloadMe ou Unload Ta_Feuille.

          Pour quitter l'application crée un bouton avec le libellé Fin et tu le nomme cmdFin et tu ajoutes ce bout de code
          Private Sub cmdFin_Click()
              Worksheets("Page de garde").Activate
              Unload Me
          End Sub


          Voilà le code avec le bouton Fin ajouté
          Private Sub cmdFin_Click()
              Worksheets("Page de garde").Activate
              Unload Me
          End Sub
          
          Private Sub CommandButton2_Click()
          Feuilledesaisiemoteurs.Hide
          Rows(2).Select
          Selection.Delete
          End Sub
          
          
          
          'Private Sub TextBox2_Change()
          'If Not IsNumeric(TextBox2.Text) Then
          'MsgBox "Vous devez entrer un nombre."
          'TextBox2.Text = ""
          'End If
          'End Sub
          '
          '
          'Private Sub TextBox3_change()
          'If Not IsNumeric(TextBox3.Text) Then
          'MsgBox "Vous devez entrer un nombre."
          'TextBox3.Text = ""
          'End If
          'End Sub
          '
          '
          'Private Sub TextBox4_Change()
          'If Not IsNumeric(TextBox4.Text) Then
          'MsgBox "Vous devez entrer un nombre."
          'TextBox4.Text = ""
          'End If
          'End Sub
          '
          'Private Sub TextBox5_Change()
          'If Not IsNumeric(TextBox5.Text) Then
          'MsgBox "Vous devez entrer un nombre."
          'TextBox5.Text = ""
          'End If
          'End Sub
          
          
          Private Sub CommandButton1_Click()
          
          If Not IsNumeric(TextBox2.Text) Then
                  MsgBox "Vous devez entrer un nombre dans le champ - Intensité nominale."
                  TextBox2.Text = ""
                  TextBox2.SetFocus
                  Exit Sub
          ElseIf Not IsNumeric(TextBox3.Text) Then
                  MsgBox "Vous devez entrer un nombre dans le champ - Phase 1."
                  TextBox3.Text = ""
                  TextBox3.SetFocus
                  Exit Sub
          ElseIf Not IsNumeric(TextBox4.Text) Then
                  MsgBox "Vous devez entrer un nombre dans le champ - Phase 2."
                  TextBox4.Text = ""
                  TextBox4.SetFocus
                  Exit Sub
          ElseIf Not IsNumeric(TextBox5.Text) Then
                  MsgBox "Vous devez entrer un nombre dans le champ - Phase 3."
                  TextBox5.Text = ""
                  TextBox5.SetFocus
                  Exit Sub
          Else
          
              Worksheets("Moteurs").Activate
              Rows(2).Select
              Selection.Insert
              Rows(2).Select
              Selection.Insert
              With Feuilledesaisiemoteurs
                  .TextBox1.Text = ""
                  .TextBox2.Text = ""
                  .TextBox3.Text = ""
                  .TextBox4.Text = ""
                  .TextBox5.Text = ""
                  .TextBox6.Text = ""
                  .TextBox7.Text = ""
                  .TextBox8.Text = ""
                  .TextBox9.Text = ""
                  .TextBox10.Text = ""
                  .ComboBox1.Text = ""
                  .Textbox11.Text = ""
              End With
          
          End If
          End Sub
          
          
          
          0
          1. Re,
            en fait j'ai commencé a faire ce userform par hasard et suivi quelque tutoriel sur le net donc je ne suis pas un grand specialiste, j'avais vu que l'on pouvait renommer les boutons ...mais m'était dis que de toute façon je n'irais pas trés loin dans la programmation et c'est pour çà que je n'ai presque rien renommé, mais comme je constate que c'est assez prenant et avec l'aide de personne comme toi, je crois que je vais essayé d'aller au terme de ce petit projet.
            Voila ce que j'aimerai faire: page de garde: je crois qu'elle est OK: appelle des différents userform pour renter les données.
            userform saisie moteurs comme tu l'a tres bien compris ici je veux rentrer mes différents moteurs: 1 bouton pour valider les données qui envoie ces valeurs dans la feuille moteurs (mais ne la fait pas apparaitre) ,vide toute les textbox, ainsi je peux rentrer tous mes moteurs.
            Le bouton annuler pour effacer la dernière ligne rentrer ?????(nécessaire ou pas ???)
            Au début je voulais créer 2 autres boutons pour voir les enregistrements précédent et suivant mais je ne sais pas si c'est faisable.
            Je dois créer plusieurs userform car on a plusieurs types de controle a effectuer et a acter.
            Voila en gros ce que je dois faire.
            En tous cas merci pourt'inquiéter de mon sort.
            A plus
            0
        3. Modérateur
          Au début je voulais créer 2 autres boutons pour voir les enregistrements précédent et suivant mais je ne sais pas si c'est faisable.

          Bien sûr que c'est faisable. Mais en ce cas c'est mieux de créer une autre feuille pour Visualisation et pourquoi pas pour Editer (le cas où tu veux apporter des modifications à tes données).
          0
          1. Quand tu dis de créer une feuille visualisation, çà serai une copie de la feuille moteurs ????
            En principe , il ne dois pas y avoir de modifs sauf si on vient a changer un moteur, mais bon on ne sais jamais.
            Pour l'instant je vais essayé de terminer sans les boutons de recherche(précédent et suivant trop compliqué)
            Encore un petit service: lorsque que je rentre les données dans la feuille moteurs j'insère le nouveau moteur et ceux rentrer auparavant descende d'une ligne, je voudrais renter le nouveau à la suite des autres quel instruction dois je mettre au lieu de :Rows(2).Select
            Selection.Insert

            merci
            0
            1. Modérateur
              Quand tu dis de créer une feuille visualisation, çà serai une copie de la feuille moteurs ????

              Oui pour les zones de texte et les libellés. Mais pour les boutons ça change.

              Précédant, Suivant, Le 1er enregistrement, Le dernier enregistrement, Recherche, Editer, Annuler, Supprimer....

              Pour le petit service. Je ne comprends pas ce que tu veux.

              Tu veux le données comme ça

              moteur n
              .
              .
              .
              moteur 1

              ?

              ou

              moteur 1
              .
              .
              moteur n

              ?
              0
              1. c'est exactement çà:
                moteur 1
                .
                .
                moteur n

                est çà çà bloque:
                Private Sub CommandButton4_Click()
                Feuilledesaisiemoteurs.Hide
                Load Worksheets("Moteurs") <<<<çà me met une erreur
                Worksheets("Moteurs").Show <<<<çà me met une erreur
                0
                1. Modérateur
                  C'est normal que tu as des messages d'erreur.

                  Il faut que tu comprennes ce que c'est un objet VBA et ce que c'est les objets Excel.

                  Avec Load tu peux charger une UserForm mais pas un classeur Excel.

                  Pour les classeurs tu utilises Worksheets("jkj").Activate par exemple.
                  0
              2. Merci, çà marche maintenant et pour classer par ordre d'entrée
                moteur 1
                .
                .
                moteur n
                je fais quoi ???????????et comment
                merci
                désolé de te déranger mais pour l'instant t'es le seul qui ai bien voulu m'aider donc j'en profite ( encore un peu)
                0
                1. Modérateur
                  Par ordre d'entrée :

                  remplace ce code
                      Worksheets("Moteurs").Activate
                      Rows(2).Select
                      Selection.Insert
                      Rows(2).Select
                      Selection.Insert
                      With Feuilledesaisiemoteurs
                          .TextBox1.Text = ""
                          .TextBox2.Text = ""
                          .TextBox3.Text = ""
                          .TextBox4.Text = ""
                          .TextBox5.Text = ""
                          .TextBox6.Text = ""
                          .TextBox7.Text = ""
                          .TextBox8.Text = ""
                          .TextBox9.Text = ""
                          .TextBox10.Text = ""
                          .ComboBox1.Text = ""
                          .Textbox11.Text = ""
                      End With
                  avec
                      Worksheets("Moteurs").Activate
                      r = Range("A65536").End(xlUp).Row + 1
                      Cells(r, 1) = Textbox11.Text
                      Cells(r, 2) = ComboBox1.Text
                      Cells(r, 3) = TextBox1.Text
                      Cells(r, 4) = TextBox2.Text
                      Cells(r, 5) = TextBox3.Text
                      Cells(r, 6) = TextBox4.Text
                      Cells(r, 7) = TextBox5.Text
                      Cells(r, 8) = TextBox6.Text
                      Cells(r, 9) = TextBox7.Text
                      Cells(r, 10) = TextBox8.Text
                      Cells(r, 11) = TextBox9.Text
                      Cells(r, 12) = TextBox9.Text
                      
                      With Feuilledesaisiemoteurs
                          .TextBox1.Text = ""
                          .TextBox2.Text = ""
                          .TextBox3.Text = ""
                          .TextBox4.Text = ""
                          .TextBox5.Text = ""
                          .TextBox6.Text = ""
                          .TextBox7.Text = ""
                          .TextBox8.Text = ""
                          .TextBox9.Text = ""
                          .TextBox10.Text = ""
                          .ComboBox1.Text = ""
                          .Textbox11.Text = ""
                      End With

                  En ce cas tu auras le

                  ligne 2 - moteur1 ( la 1ère saisie)
                  ligne 3 - moteur2
                  .
                  .
                  .
                  ligne n - moteur n ( la dérnière saisie)

                  J'ai remarqué aussi que tu as la propriètes ControlSource positionnée sur certaines cellules pour les zones de texte et combobox. Vérifie si ça sers à quelque chose dans ton cas. Moi j'ai supprimé.
                  0
                  1. C'est sympa de ta part de continué à m'aider.
                    Entretemps j'ai fait quelques modifs et certainement des erreurs.
                    J'ai rajouter tes instructions mais j'ai toujours une erreur à la ligne 2 de la feuille moteurs et aussi quand je valide avec OK du Userform çà bloque le userform ????
                    Il faudrait aussi pouvoir utiliser le caractere - car je peux avoir des moteurs en mono donc les textbox isnumeric doivent pouvoir accepter le -.
                    Je te met le classeur entier modifié à l'adresse ci dessous.
                    Merci et bonne soirée
                    http://cjoint.com/?msvcZd0pOP
                    0
                    1. Modérateur
                      avec OK du Userform çà bloque le userform ????
                      Il faut spécifier ce que tu saisies ou ce que tu fait pour savoir chercher l'erreur. Je n'ai pas des erreurs donc je ne sais pas où est le problème.

                      Essaie pour l'instant une saisie normale, pour voir le comportement de ta ligne 2
                      http://cjoint.com/?msvzFYgCRs

                      pouvoir utiliser le caractere - Donne un exemple de valeur que tu veux saisir.
                      0
                      1. Cà semble fonctionner correctement, les valeurs de la ligne 2 restent maintenant.
                        Ta fait quoi ?
                        0
                      2. Modérateur
                        @pkli54Reponse N°18

                        J'ai remarqué aussi que tu as la propriètes ControlSource positionnée sur certaines cellules pour les zones de texte et combobox. Vérifie si ça sers à quelque chose dans ton cas. Moi j'ai supprimé.

                        Donc j'ai supprimé la ligne 2 ou tu avais dans la cellule B2 la marque Wilo.

                        Ensuite j'ai supprimé les propriètes ControlSource de tes zones de texte et CompoBox. ControlSource était positionné pour chaque zone de texte et la combobox à Moteurs!A2.......
                        0
                    2. Par contre je ne sais pas si tu as remarqué mais quand tu valide avec le bouton OK dans le userform, il y a le bouton "retour feuille de saisie" qui apparait à droite du userform ???
                      problème avec les instructions visible ????
                      0
                      1. @lami20jC'est impeccable!!!!
                        T'es super sympa!!!
                        Grace à toi mon projet a fait un grand pas aujourd'hui et ne vais pas abuser de ta gentillesse pour ce soir.
                        Est ce que je peux encore compter sur toi si j'ai d'autres soucis (cela sera surement le cas)???
                        Merci encore et je te souhaite une bonne nuit.
                        Quand à moi, pour ce soir c'est fini , demain boulot à 5h.
                        Encore un grand merci et a bientôt.
                        0
                      2. Modérateur
                        @pkli54J'ai fait une erreur dans le dernier fichier que j'ai envoyé (la position de End If). Voilà la dernière version http://cjoint.com/?mswwJvLJze

                        Il faut que tu explique ce que tu veux en ce qui concerne les valeurs qui peuvent contenir -.
                        0
                    3. en fait dans les textbox intensite absorbée phase 1 / phase 2 et phase 3 on a dit qu'il ne fallait que des chiffres mais lorsque que j'ai des moteurs monophasés , je n'ai qu'une seule intensité absorbée qui peut etre rentrée en ph1 ph 2 ou ph3 tout dépend du cablage donc il faudrait prévoir de pouvoir utiliser le caractere --- pour dire qu'il n'y a pas de valeur dans 2 textbox
                      OK ????
                      0
                      1. Modérateur
                        Si j'ai bien compris les zones phase 1, 2 et 3 doivent accepter soit un nombre soit ---

                        C'est ça?
                        0
                      2. @lami20jOui, c'est bien çà
                        0
                      3. @lami20jBonjour lami20j,
                        J'ai récupéré ta dernière modif, elle fonctionne,pas de problème.
                        Moi j'étais parti sur une instruction OR différent de.
                        Maintenant je suis au boulot jusque 17h et ce soir j'ai vais "encore" modifié la feuille de saisie moteurs pour y rajouter la tension. Et après je pense qu'elle devrait être OK pour utilisation.
                        Encore une fois, je te renouvelle mes remerciements car sans toi, je pense que pour arriver a ce résultat j'aurai mis plusieurs semaines.
                        Bonne journée à toi.
                        Merci encore!!
                        Ciao
                        0
                    4. Salut lami20j,
                      je te l'avais dit que j'aurai encore besoin de tes connaissances.
                      J'ai rajouté 2 optionbutton pour faire un choix mais j'ai un problème avec la syntaxe.
                      Si tu veux bien y jeter un oeil dis le moi, je posterais le classeur comme hier.
                      Merci d'avance.
                      0
                      1. Modérateur
                        envoie ton classeur
                        0
                    5. 0
                      1. Modérateur
                        Dit ce que tu veux. Comment tu veux utiliser les options.
                        Sinon je ne sais pas quoi faire.
                        0
                      2. Dans la feuille moteurs, j'ai rajouté la colonne " tension".
                        Dans le userform j'ai créer les 2 optionbutton " 230 Volts et 400Volts".
                        Ce que j'aimeari c'est que si on choisit 230 il faut que dans la feuille moteurs s'affiche 230 et idem avec 400
                        0
                      3. @lami20jMerci lami20j,
                        c'est OK.
                        Petite question, j'ai mis la colonne tension en dernier dans ma feuille, si je veux la déplacer par exemple en colonne D, je suppose que je dois modifier toutes les lignes dans le code pour tous les reports d'information??
                        Ce que je voudrais, c'est faire une impression un peu plus présentable que le tableau de la feuille , donc peut etre qu'il n'ai pas nécessaire que je déplace toutes les données??
                        Que dois je utiliser pour une impression pour pouvoir donner le dossier au client ??export vers un autre programme ??sous excel ??
                        0
                    6. Modérateur
                      j'ai mis la colonne tension en dernier dans ma feuille, si je veux la déplacer par exemple en colonne D, je suppose que je dois modifier toutes les lignes dans le code pour tous les reports d'information??

                      Oui il faut faire corespondre Cells(r, la_colonne) aux zones de texte (voilà pourquoi c'était mieux de nommer les zones de texte.

                      Pour l'impression tu peux arranger le tableau sous excel. La mise en forme de classeur n'affecte pas la saisie dans les cellules, tant que les adresses de cellules ne changent pas.

                      Si tu insères une colonne par exemple les adresses de cellules change donc il faut modifier dans le code.
                      0
                      1. OK, compris
                        Je vais arranger tout çà et renommer textbox et boutons, puis créer les autres userform et essayer de rendre les tableaux présentable à l'impression.
                        Je te remercie pour ton aide , c'est vraiment sympa de ta part.
                        Bonne soirée.
                        @+
                        0
                    7. Bonjour lami20j,
                      problème du jour (si çà ne te dérange pas et surtout si tu veux bien),
                      j'ai créé un nouveau Userform (feuillesaisieCTA) dans lequel j'ai 2 Optionbutton qui doivent me permettrent l'accés à 3 textbox dans lesquelles il faudrait faire des calculs ????
                      je te met le classeur en copie , et si tu veux bien y regarder.
                      Merci d'avance

                      http://cjoint.com/?mupGf6rMP4
                      0
                      1. Modérateur
                        Salut,

                        Il faut que tu me dise ce que tu veux faire avec la nouvelle Feuille.

                        Je vois que tu as travaillé, tu as nommé tes "objets", cependant tu as exageré

                        Par exemple pour la feuille "Feuilledesaisiemoteurs" tu devais la nommé plutôt frmMoteurs

                        Il faut eviter aussi les accents les espaces.

                        Exemple:

                        la zone de texte TxtRéglageThermique
                        plutôt txtReglTherm

                        Désolé pour les remarques mais le but c'est de simplifier les choses.

                        En général le préfixes tu le mets en minuscules.
                        Voilà une liste que tu peus utiliser pour préfixer les noms de tes "objets" :
                        cbo - ComboBox
                        chk - CheckBox
                        cmd - CommandButton
                        fra - Frame
                        frm - UserForm
                        img - Image
                        lbl - Label
                        lst - ListBox
                        opt - OptionButton
                        txt - TextBox
                        0
                    • 1
                    • 2