Un TextBox qui ne réponds plus

Résolu
Bonsoir a toutes et tous, forum bonsoir



Excel 2007 VBA windows 7 - 32 bits

Pour avoir une suite logique dans mes TextBoxs 5 au total

j'ai renomer le textbox 5 en textbox 4

et depuis celui ci ne réponds plus

un simple Textbox4 = "Coucou" et Mr Excel s'arrète avec le message (Excel a cesser de fonctionner etc etc)

pour le mème travail je mets a la place par Ex: un Label12= "Coucou" et la ca fonctionne

je ne sais pas pourquoi excel plante quand je solicite le textbox4

par contre le textbox 5 fonctionne va comprendre ?????

si quelqu'un a une petite idée sur le soucis je suis preneur.

Merci d'avance pour aide et votre savoir partagé

Bonne soirée a tous

Cordialement Ray

7 réponses

  1. Merci a toi, je prends bonne note pour les TextBoxs

    bonne après midi et encore grand merci

    a plus tard sans doute LOL

    Cordialement raymond
    1. Contributeur
      Quand tu ne sauve pas, ça reste en mémoire tu le remet..ça fait des noeux avec le handle
      Note, c'est un bug d'Excel, des fois ça marche et des fois pas.
      Prochaine fois change également le nom TextBox5 => LeText4

      Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
      Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
      1. Salut lermite222

        Bon c'est OK ça fonctionne de nouveau avec cette méthode
        ----------

        Autre piste, supprime le TextBox 4
        Sauve le classeur.
        Remet un nouveau TextBox4
        Double-clic dessus et vois où tu atterri.
        ----------

        En fait ce que j'ai fait, c'est renommer mon TextBox mais ça n'a pas marcher

        j'ai bien effacer le textbox puis creer un autre que j'ai renommer 4 et ca ne marchai toujours pas

        donc l'erreur c'est que après avoir suprimer le texbox je ne sauvais pas le fichier

        et de recreer un autre (mais après) et bien sur ce n'ai plus pareil

        quand pense tu svp

        je clos le sujet ensuite

        En tout cas, je t'envoi de Rouen mes meilleurs remerciements

        merci lermitte222

        Cordialement Raymond
        1. Salut lermite222

          Merci bien, je vais essayer comme tu dit

          Cdlt Ray
          1. Contributeur
            Pas sûr que ça plante sur cette ligne là.
            Met un point d'arrêt sur la ligne

            TextBox4 = Ws.Cells(26, 5 + ComboBox4.ListIndex) & " €" (F9) au cas ou !

            Quand l'exécution s'arrête sur cette ligne
            Dans la fenêtre exécution tape Print Ws.Name
            Si ça donne le nom continue avec F8.

            Autre piste, supprime le TextBox 4
            Sauve le classeur.
            Remet un nouveau TextBox4
            Double-clic dessus et vois où tu atterri.

            Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
            Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
            1. Bonjour a tous, forum

              Salut lermitte222

              Merci pour ta réponse,

              je te mets le bout de code tout le programme fonctionne très bien c'est depuis que j'ai fait ma bidouille de renomer que ça merdouille, commentaire dans le code du textbox4

              Si par exemple je creer un label18 pour essayer, ça fonctionne et le programme continu de bien marcher

               Label18 = Ws.Cells(26, 5 + ComboBox4.ListIndex) & " €"
              OK

              j'ai comparer avec les propriétés avec les Textbox 2 et 3 c'est identique a part tabindex

               TextBox4 = Ws.Cells(26, 5 + ComboBox4.ListIndex) & " €"
              NO good

              Merci pour ton aide une bonne journée a toi

              Cdlt Raymond

              '*** MACRO POUR LES TEXTBOXS 2-3-4
              Sub Macro(NumTB)
                Dim CB As Control, TB As Control, Ligne As Long, Valeur As Integer
                If Encours = True Then Exit Sub
                   Encours = True
               
                If NumTB = 2 Then
                  Ligne = 21                          'On se sert du n° de textbox passé en paramètre pour déterminer le n° de ligne
                  Valeur = 228                        'On pourra se servir du test pour déterminer le label à utiliser
                ElseIf NumTB = 3 Then
                  Valeur = 240
                  Ligne = 22
                ElseIf NumTB = 4 Then
                  Ligne = 26
                  Valeur = 288
                End If
                 
                  Set CB = Me.Controls("ComboBox" & NumTB)         'On assigne une variable au textbox et au combobox à utiliser
                  Set TB = Me.Controls("TextBox" & NumTB)
               
                If CB.ListIndex = -1 Then                          'TB et CB désignent donc les contrôles à utiliser
                   TB.BackColor = vbRed                            'Mets Rouge fond TextBox2 si erreur
                   MsgBox "Sélectionner un mois"
                   TB = ""
                 Else
                   Ws.Cells(Ligne, 5 + CB.ListIndex) = Val(Replace(TB.Value, ",", "."))
                   Controls("Label" & Valeur + 1 + CB.ListIndex) = Format(Ws.Cells(Ligne, 5 + CB.ListIndex), Euro)
                  End If
               
              '** ACTIONS variable des lignes 21-22-26
                For I = 1 To 12
                    Controls("Label" & I + Valeur).Caption = Format(Ws.Cells(Ligne, I + 4), Euro)        'Label 228 à 240
               
                 If Ws.Cells(Ligne, I + 4) < 0 Then
                    Controls("Label" & I + Valeur).ForeColor = vbRed
                   Else
                    Controls("Label" & I + Valeur).ForeColor = vbWhite
                 End If
               
                Next I
                     TB.BackColor = vbGreen                        'Remets Vert fond TextBox2
                     Encours = False
              End Sub
              
              '*** ### COMBOBOX(2)SELECTIONNE LE MOIS OU SERA COPIER LA VALEUR ENTRER DANS TEXTBOX(2)
              Private Sub Combobox2_Click()
                If ComboBox2.ListIndex = -1 Then Exit Sub
                If LCase(Me.ComboBox2.Value) <> LCase(Format(Date, "mmmm")) Then     'Test si bon mois
                
                       MsgBox "Mois non Valide"
                       ComboBox2.ListIndex = -1                                      'On vide le Combobox
                     Exit Sub
                     End If
                   TextBox2 = Ws.Cells(21, 5 + ComboBox2.ListIndex) & " €"
              End Sub
              
              '*** TEXTBOX(2)ON ENTRE UNE VALEUR DESTINATION DANS FEUILLE ZONE E21:P21 (CARSAT)
              Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
              On Error Resume Next
                 If InStr("1234567890,-€", Chr(KeyAscii)) = 0 Then
                    KeyAscii = 0
                 End If
              End Sub
              
              Private Sub TextBox2_Change()
                Macro 2
              End Sub
              
              '*** ### COMBOBOX(3)SELECTIONNE LE MOIS OU SERA COPIER LA VALEUR ENTRER DANS TEXTBOX(3)
              Private Sub Combobox3_Click()
                If ComboBox3.ListIndex = -1 Then Exit Sub
                If LCase(Me.ComboBox3.Value) <> LCase(Format(Date, "mmmm")) Then
                
                       MsgBox "Mois non Valide"
                       ComboBox3.ListIndex = -1
                     Exit Sub
                     End If
                   TextBox3 = Ws.Cells(22, 5 + ComboBox3.ListIndex) & " €"
              End Sub
              
              '*** TEXTBOX(3)ON ENTRE UNE VALEUR DESTINATION DANS LA ZONE E22:P22 (MALAKOFF)
              Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
              On Error Resume Next
                 If InStr("0123456789-,.", Chr(KeyAscii)) = 0 Then
                    KeyAscii = 0
                 End If
              End Sub
              
              Private Sub TextBox3_Change()
                Macro 3
              End Sub
              
              ''''''''''''''''''''''''''
              LE TEXTBOX4 N'ai nulle part ailleurs dans le programme juste a partir d'ici
              
              '*** ### COMBOBOX(4)SELECTIONNE LE MOIS OU SERA COPIER LA VALEUR ENTRER DANS TEXTBOX(4)
              Private Sub Combobox4_Click()
                If ComboBox4.ListIndex = -1 Then Exit Sub
                If LCase(Me.ComboBox4.Value) <> LCase(Format(Date, "mmmm")) Then
                
                       MsgBox "Mois non Valide"
                       ComboBox4.ListIndex = -1
                     Exit Sub
                     End If
              '---------- Excel plante dès qu'il passe a la ligne ci-dessous
                     TextBox4 = Ws.Cells(26, 5 + ComboBox4.ListIndex) & " €"
              '----------------------------------------------
              End Sub
              
              '*** TEXTBOX(4)ON ENTRE UNE VALEUR DESTINATION DANS LA ZONE E26:P26
              Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
              On Error Resume Next
                 If InStr("0123456789-,.", Chr(KeyAscii)) = 0 Then
                    KeyAscii = 0
                 End If
              End Sub
              
              Private Sub TextBox4_Change()
                Macro 4
              End Sub
              
              1. Bonjour,

                Tu ne confonds pas Textbox4 et Combobox4 ?

                A+
              2. Salut Zoul67

                merci pour ta réponse mais, non je ne confonds pas

                bonne journée

                Ray
            2. Contributeur
              Bonjour,
              Tu est sûr que sa radio est allumée..... :-))
              Double-clic sur le textBox et vois où tu atterri, probable que le code n'est plus à jour.
              A+