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. 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+
    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
      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. Salut lermite222

        Merci bien, je vais essayer comme tu dit

        Cdlt Ray
        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. 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. 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