Userform initialize en jaune ssss

Bonjour à tous.

J'ai le code ci-dessous dans un userform qui fonctionne très bien et qui me permet de remplir des cellules sur une feuille qui se nomme facture.

(je tape une lettre dans l'une des combobox et il me donne tous les noms commencant par cette lettre "facon google")

Dim a(), b(), d()

Private Sub TraiterCheckBox()
  If Me.CheckBox1 = True Then
    Sheets("Facture").CheckBox1 = True
  Else
    Sheets("Facture").CheckBox1 = False
  End If

  If Me.CheckBox2 = True Then
    Sheets("Facture").CheckBox2 = True
  Else
    Sheets("Facture").CheckBox2 = False
  End If

  If Me.CheckBox3 = True Then
    Sheets("Facture").CheckBox3 = True
  Else
    Sheets("Facture").CheckBox3 = False
  End If

  If Me.CheckBox4 = True Then
    Sheets("Facture").CheckBox4 = True
  Else
    Sheets("Facture").CheckBox4 = False
  End If

  If Me.CheckBox5 = True Then
    Sheets("Facture").CheckBox5 = True
  Else
    Sheets("Facture").CheckBox5 = False
  End If

  If Me.CheckBox6 = True Then
    Sheets("Facture").CheckBox6 = True
  Else
    Sheets("Facture").CheckBox6 = False
  End If
  CmdButtonAnnuler_Click
End Sub

Private Sub CmdButtonAnnuler_Click()
  End
End Sub

Private Sub CmdButtonGenererDevis_Click()

With Sheets("Facture")
  .[L9] = Me.ComboBoxAdressesSites
  .[L11] = Me.ComboBoxClients
  .[C21] = Me.ComboBoxTypeProtection.Value  ' à revoir
  .[M20] = Me.TextBox13                ' remplacer XXXX par l'adresse où écrire dans la feuille DEVIS
  .[N15] = Val(TextBox3)
  .[M21] = Val(TextBox12)
  .[M22] = Val(TextBox14)
  .[M23] = Val(TextBox9)
  .[M24] = Val(TextBox10)
  .[n26] = Val(TextBox11)

End With
TraiterCheckBox

End Sub

Private Sub ComboBoxAdressesSites_Change()
  Set D1 = CreateObject("Scripting.Dictionary")
  x = Replace(Replace(Me.ComboBoxAdressesSites, ".", ""), " ", "")
  tmp = "*"
  For i = 1 To Len(x): tmp = tmp & Mid(x, i, 1) & "*": Next i
  tmp = UCase(tmp)
  For Each c In d
   tmp2 = "*" & Replace(Replace(c, ".", ""), " ", "") & "*"
   If UCase(tmp2) Like tmp Then D1(c) = ""
  Next c
  Me.ComboBoxAdressesSites.List = D1.keys
  Me.ComboBoxAdressesSites.DropDown

End Sub

Private Sub ComboBoxClients_Change()
  tmp = UCase(Me.ComboBoxClients) & "*"
  Set MonDico = CreateObject("Scripting.Dictionary")
Debug.Print tmp
  For Each c In a
    If c Like tmp Then MonDico(c) = ""
  Next c
  Me.ComboBoxClients.List = MonDico.keys
  Me.ComboBoxClients.DropDown
End Sub

Private Sub UserForm_Initialize()
  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2

  b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  Me.ComboBoxClients.MatchEntry = 2

  d = [adressechantier].Value
  Me.ComboBoxAdressesSites.List = d

End Sub

J'ai creer un autre userform, qui est censé faire la meme chose mais sur une autre feuille, j'ai appliquer le code en renommant correctement le nom de la feuille et en ayant supprimer quelque cellule à recopier. et des que j'ouvre le formulaire, j'ai une erreur en jaune sur Private Sub UserForm_Initialize() et en bleu sur ComboBoxClients

et m’écris erreur de compilation membre de methode ou de données introuvable.

voici le code

Dim a(), b(), d()

Private Sub TraiterCheckBox()
  If Me.CheckBox1 = True Then
    Sheets("facture electrique").CheckBox1 = True
  Else
    Sheets("facture electrique").CheckBox1 = False
  End If

  If Me.CheckBox2 = True Then
    Sheets("facture electrique").CheckBox2 = True
  Else
    Sheets("facture electrique").CheckBox2 = False
  End If

  If Me.CheckBox6 = True Then
    Sheets("facture electrique").CheckBox6 = True
  Else
    Sheets("facture electrique").CheckBox6 = False
  End If
  CmdButtonAnnuler_Click
End Sub

Private Sub CmdButtonAnnuler_Click()
  End
End Sub

Private Sub CmdButtonGenererDevis_Click()

With Sheets("Facture electrique")

  .[K6] = Me.ComboBoxAdressesSites
  .[K8] = Me.ComboBoxClients
  .[C20] = Me.ComboBoxTypeProtection.Value
  .[L15] = Me.TextBox13                ' remplacer XXXX par l'adresse où écrire dans la feuille DEVIS
  .[L16] = Me.TextBox12
  .[L21] = Val(TextBox14)
  .[M15] = Val(TextBox3)
  .[M16] = Val(TextBox15)
  .[M21] = Val(TextBox14)  

End With
TraiterCheckBox
End Sub

Private Sub ComboBoxAdressesSites_Change()
  Set D1 = CreateObject("Scripting.Dictionary")
  x = Replace(Replace(Me.ComboBoxAdressesSites, ".", ""), " ", "")
  tmp = "*"
  For i = 1 To Len(x): tmp = tmp & Mid(x, i, 1) & "*": Next i
  tmp = UCase(tmp)
  For Each c In d
   tmp2 = "*" & Replace(Replace(c, ".", ""), " ", "") & "*"
   If UCase(tmp2) Like tmp Then D1(c) = ""
  Next c
  Me.ComboBoxAdressesSites.List = D1.keys
  Me.ComboBoxAdressesSites.DropDown

End Sub

Private Sub ComboBoxClients_Change()
  tmp = UCase(Me.ComboBoxClients) & "*"
  Set MonDico = CreateObject("Scripting.Dictionary")
Debug.Print tmp
  For Each c In a
    If c Like tmp Then MonDico(c) = ""
  Next c
  Me.ComboBoxClients.List = MonDico.keys
  Me.ComboBoxClients.DropDown
End Sub

Private Sub UserForm_Initialize()
  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2

  b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  Me.ComboBoxClients.MatchEntry = 2

  d = [adressechantier].Value
  Me.ComboBoxAdressesSites.List = d

End Sub

C'est un membre du forum qui m'avait aidé pour realiser ceci, mais là j'avoue que je séche grave !! de 21h à 5h du matin et la depuis 13h je cherche et je cherche, mes yeux se ferment, lol aider moi svp.

Pas facile de mettre le fichier en ligne, mais si c'est vraiment nécessaire je le ferais.

merci par avance.

Ah je viens de trouver, c'est mes deux combobox qui etait mal nommée.

merci

rebonjour tous le monde

par contre maintenant quand j'ouvre mon formulaire en cliquant sur mon bouton qui à comme code

Sub goformulairefactureelectrique()
formulairefactelect.Show
End Sub

il me fait une erreur 438 et me surligne en jaune formulairefactelect.show

Aidez moi je vous en supplie

bonjour

ton userform s'appel bien formulairefactelect ??

pas de faute d'orthographe ou autre ???

et avec un fichier cela serait plus facile....

fred

Je veut bien fournir un classeur, mais il n'y aura que la feuille et l'userform et les codes.

il n'y aura pas les feuilles pour les combobox. pas grave?


Voici le classeur exemple.

Sur celui ci ca me donne une erreur 424 objet requis alors que sur mon classeur orinale, ca me donne bien l'erreur dans mon post precedent.

Je suis perdu la au secours


Quand je place en commentaire le code suivant le formulaire s'ouvre :

en tapotant F8 il bloque a la ligne a = [listeclientg].Value

'Private Sub UserForm_Initialize()
  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2

  b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  Me.ComboBoxClients.MatchEntry = 2

  d = [adressechantier].Value
  Me.ComboBoxAdressesSites.List = d

  factelecvierge
End Sub

j'approche de l'erreur lol mais je ne comprend pas.

J'ai ce meme code sur ma feuille devis, et il fonctionne, sur ma feuille facture et il fonctionne, et la sur ma feuille facture electrique ca ne fonctionne pas.

re

j'ai le même problème que toi a savoir blocage ici

a = [listeclientg].Value

mais comme listeclientg est déclaré comme ceci :

capture

et que je n'ais pas accès (tout comme toi.... ) a ce fichier je suppose qu'il y a un problème avec soit ce fichier qui n'existe pas ou autre.....

fred

c'est pas quelques chose de nommer dans le scripting dictionnary, je connais pas du tout cela

dans ton fichier original

est-ce que dans ton gestionnaire de noms tu as des #ref comme dans mon image précédente ou tu as des valeurs ???

fred

c'est identique, et pourtant cette meme methode et ce meme code fonctionne sur deux autres formulaires (pour mes devis et facture normal)

pour facture electrique, il bug.

Essai de mettre ces trois lignes en commentaire

  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2

pour voir si cela vient seulement de listeclientg ou aussi sur kitbase et adressechantier

mais comme tu dit c'est identique cela veut dire que tu as des #ref ???

fred

En faite kit de base et typedeprotection je ne m'en sert pas sur cet userform,

J'ai tenté de supprimé mais je me paume avec lettre a b c d

je comprend rien lol

En mettant le commentaire ici, le formulaire s'ouvre mais je n'ai pas la liste dans les combobox (normal !! )

'Private Sub UserForm_Initialize()
  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2

  b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  Me.ComboBoxClients.MatchEntry = 2

  d = [adressechantier].Value
  Me.ComboBoxAdressesSites.List = d

  factelecvierge
End Sub

Donc a mon avis tu as un problème avec ta déclaration dans le gestionnaire de nom de ta variable listeclientg

je te conseil d'en refaire une autre dans un premier temps définir la plage manuellement (comme les autres variables) et si cela fonctionne de repasser avec une fonction decaler...

fred

Voici le code de l'userform pour remplir mes factures. ca fonctionne nickel

Dim a(), b(), d()

Private Sub TraiterCheckBox()
  If Me.CheckBox1 = True Then
    Sheets("Facture").CheckBox1 = True
  Else
    Sheets("Facture").CheckBox1 = False
  End If

  If Me.CheckBox2 = True Then
    Sheets("Facture").CheckBox2 = True
  Else
    Sheets("Facture").CheckBox2 = False
  End If

  If Me.CheckBox3 = True Then
    Sheets("Facture").CheckBox3 = True
  Else
    Sheets("Facture").CheckBox3 = False
  End If

  If Me.CheckBox4 = True Then
    Sheets("Facture").CheckBox4 = True
  Else
    Sheets("Facture").CheckBox4 = False
  End If

  If Me.CheckBox5 = True Then
    Sheets("Facture").CheckBox5 = True
  Else
    Sheets("Facture").CheckBox5 = False
  End If

  If Me.CheckBox6 = True Then
    Sheets("Facture").CheckBox6 = True
  Else
    Sheets("Facture").CheckBox6 = False
  End If
  CmdButtonAnnuler_Click
End Sub

Private Sub CmdButtonAnnuler_Click()
  End
End Sub

Private Sub CmdButtonGenererDevis_Click()
plusfor

With Sheets("Facture")
  .[L9] = Me.ComboBoxAdressesSites
  .[L11] = Me.ComboBoxClients
  .[C21] = Me.ComboBoxTypeProtection.Value  ' à revoir
  .[M20] = Me.TextBox13                ' remplacer XXXX par l'adresse où écrire dans la feuille DEVIS
  .[N15] = Val(TextBox3)
  .[M21] = Val(TextBox12)
  .[M22] = Val(TextBox14)
  .[M23] = Val(TextBox9)
  .[M24] = Val(TextBox10)
  .[n26] = Val(TextBox11)

End With
TraiterCheckBox

End Sub

Private Sub ComboBoxAdressesSites_Change()
  Set D1 = CreateObject("Scripting.Dictionary")
  x = Replace(Replace(Me.ComboBoxAdressesSites, ".", ""), " ", "")
  tmp = "*"
  For i = 1 To Len(x): tmp = tmp & Mid(x, i, 1) & "*": Next i
  tmp = UCase(tmp)
  For Each c In d
   tmp2 = "*" & Replace(Replace(c, ".", ""), " ", "") & "*"
   If UCase(tmp2) Like tmp Then D1(c) = ""
  Next c
  Me.ComboBoxAdressesSites.List = D1.keys
  Me.ComboBoxAdressesSites.DropDown

End Sub

Private Sub ComboBoxClients_Change()
  tmp = UCase(Me.ComboBoxClients) & "*"
  Set MonDico = CreateObject("Scripting.Dictionary")
Debug.Print tmp
  For Each c In a
    If c Like tmp Then MonDico(c) = ""
  Next c
  Me.ComboBoxClients.List = MonDico.keys
  Me.ComboBoxClients.DropDown
End Sub

Private Sub UserForm_Initialize()
  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2

  b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  Me.ComboBoxClients.MatchEntry = 2

  d = [adressechantier].Value
  Me.ComboBoxAdressesSites.List = d

  factchantiervierge
End Sub

Voici le code de mon userform pour remplir mes devis, ca fonctionne nikel

Dim a(), b()

Private Sub TraiterCheckBox()
  If Me.CheckBox1 = True Then
    Sheets("Devis").CheckBox1 = True
  Else
    Sheets("Devis").CheckBox1 = False
  End If

  If Me.CheckBox2 = True Then
    Sheets("Devis").CheckBox2 = True
  Else
    Sheets("Devis").CheckBox2 = False
  End If

  If Me.CheckBox3 = True Then
    Sheets("Devis").CheckBox3 = True
  Else
    Sheets("Devis").CheckBox3 = False
  End If

  If Me.CheckBox4 = True Then
    Sheets("Devis").CheckBox4 = True
  Else
    Sheets("Devis").CheckBox4 = False
  End If

  If Me.CheckBox5 = True Then
    Sheets("Devis").CheckBox5 = True
  Else
    Sheets("Devis").CheckBox5 = False
  End If

  If Me.CheckBox6 = True Then
    Sheets("Devis").CheckBox6 = True
  Else
    Sheets("Devis").CheckBox6 = False
  End If
  CmdButtonAnnuler_Click
End Sub

Private Sub CmdButtonAnnuler_Click()
  End
End Sub

Private Sub CmdButtonGenererDevis_Click()

With Sheets("Devis")
  .[K6] = Me.ComboBoxAdressesSites
  .[K8] = Me.ComboBoxClients
  .[C20] = Me.ComboBoxTypeProtection.Value  ' à revoir
  .[L15] = Me.TextBox13                ' remplacer XXXX par l'adresse où écrire dans la feuille DEVIS
  .[M10] = Val(TextBox3)
  .[L16] = Val(TextBox12)
  .[l17] = Val(TextBox14)
  .[l18] = Val(TextBox9)
  .[l19] = Val(TextBox10)
  .[J23] = Me.TextBox4
  .[J25] = Me.TextBox5
  .[M21] = Val(TextBox11)
End With
TraiterCheckBox
End Sub

Private Sub UserForm_Initialize()
  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2
  b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  devisvierge
End Sub

Private Sub ComboBoxClients_Change()
  tmp = UCase(Me.ComboBoxClients) & "*"
  Set MonDico = CreateObject("Scripting.Dictionary")
Debug.Print tmp
  For Each c In a
    If c Like tmp Then MonDico(c) = ""
  Next c
  Me.ComboBoxClients.List = MonDico.keys
  Me.ComboBoxClients.DropDown
End Sub

Et voici le code inscrit dans l'userform pour remplir mes factures electrique et je ne peux ouvrir l'userform uniquement en mettant en commentaire le 'Private Sub UserForm_Initialize()

Dim a(), b(), d()

Private Sub TraiterCheckBox()
  If Me.CheckBox1 = True Then
    Sheets("facture electrique").CheckBox1 = True
  Else
    Sheets("facture electrique").CheckBox1 = False
  End If

  If Me.CheckBox2 = True Then
    Sheets("facture electrique").CheckBox2 = True
  Else
    Sheets("facture electrique").CheckBox2 = False
  End If

  If Me.CheckBox6 = True Then
    Sheets("facture electrique").CheckBox6 = True
  Else
    Sheets("facture electrique").CheckBox6 = False
  End If
  CmdButtonAnnuler_Click
End Sub

Private Sub CmdButtonAnnuler_Click()
  End
End Sub

Private Sub CmdButtonGenererDevis_Click()
plusforelec

With Sheets("Facture electrique")

  .[K6] = Me.ComboBoxAdressesSites
  .[K8] = Me.ComboBoxClients
  .[L15] = Me.TextBox13
  .[L16] = Me.TextBox12
  .[M15] = Val(TextBox3)
  .[M16] = Val(TextBox15)
  .[M21] = Val(TextBox14)

End With
TraiterCheckBox
End Sub

Private Sub ComboBoxAdressesSites_Change()
  Set D1 = CreateObject("Scripting.Dictionary")
  x = Replace(Replace(Me.ComboBoxAdressesSites, ".", ""), " ", "")
  tmp = "*"
  For i = 1 To Len(x): tmp = tmp & Mid(x, i, 1) & "*": Next i
  tmp = UCase(tmp)
  For Each c In d
   tmp2 = "*" & Replace(Replace(c, ".", ""), " ", "") & "*"
   If UCase(tmp2) Like tmp Then D1(c) = ""
  Next c
  Me.ComboBoxAdressesSites.List = D1.keys
  Me.ComboBoxAdressesSites.DropDown

End Sub

Private Sub ComboBoxClients_Change()
  tmp = UCase(Me.ComboBoxClients) & "*"
  Set MonDico = CreateObject("Scripting.Dictionary")
Debug.Print tmp
  For Each c In a
    If c Like tmp Then MonDico(c) = ""
  Next c
  Me.ComboBoxClients.List = MonDico.keys
  Me.ComboBoxClients.DropDown
End Sub

'Private Sub UserForm_Initialize()
  a = [listeclientg].Value
  Me.ComboBoxClients.List = a
  Me.ComboBoxClients.MatchEntry = 2

  b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  Me.ComboBoxClients.MatchEntry = 2

  d = [adressechantier].Value
  Me.ComboBoxAdressesSites.List = d

  factelecvierge
End Sub

Je suis presque certain que ca vient du scrpting.dictionary. non?

Private Sub ComboBoxClients_Change()
  tmp = UCase(Me.ComboBoxClients) & "*"
  Set MonDico = CreateObject("Scripting.Dictionary")
Debug.Print tmp
  For Each c In a
    If c Like tmp Then MonDico(c) = ""
  Next c
  Me.ComboBoxClients.List = MonDico.keys
  Me.ComboBoxClients.DropDown
End Sub

A savoir que sur le formulaire qui bug, je ne me sert pas de cela

b = [kitbase].Value
  Me.ComboBoxTypeProtection.List = b
  Me.ComboBoxClients.MatchEntry = 2

D'ailleurs pourquoi la Me.ComboBoxClients.MatchEntry = 2 apparait ici aussi alors qu'elle est au dessus dans a =

Bonjour

si toi même tu ne sais pas pourquoi il y a des lignes de codes dans un programme que tu donne .... je ne peux rien pour toi....

tu as mis comme résolu le post je suppose que tu as trouvé le problème... mais si tu n'as pas trouvé, je penses que je ne peux rien pour toi...

fred

Rechercher des sujets similaires à "userform initialize jaune ssss"