Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3042 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Erreur code VBA sur Excel2007

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur code VBA sur Excel2007

n°1983965
vodkaddict
Posté le 14-04-2010 à 15:26:11  profilanswer
 

Bonjour,
 
J'ai repris un programme qui me permet de mettre une valeur dans une case en double cliquant dessus, je l'ai arrangé à ma sauce pour que cela ouvre une UserForm qui me lance sur 3 liste déroulante et un bouton Valider:
le 1er choix influence le 2ème qui lui même influence le 3ème.
 
Le problème c'est que quand je double sur ma feuille ("D1" ), l'UF se lance, j'ai mes 3 liste déroulante et mon bouton "valider" mais quand je veux pour choisir mon 1er choix, ma liste déroulante est vide... et je ne vois pas pourquoi :s.  
 
ComboBox3 = C'est mon 1er choix  
ComboBox1 = C'est mon 2ème choix  
ComboBox2 = C'est mon 3ème choix, celui que je veux retourner sur la case ou je double clic  
 
Voici ce qu'il y a dans "D1"  
Code Visual Basic :

Code :
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2. On Error Resume Next
  3. If IsEmpty(ActiveCell.Value) Then
  4. UserForm9.Show
  5. ActiveCell.Value = ComboBox2.Text
  6. ElseIf ActiveCell.Value = "X" Then
  7. ActiveCell.Value = ""
  8. End If
  9. Cancel = True
  10. End Sub


 
Dans mon UF(n°9)  
 
Code Visual Basic :

Code :
  1. Private Sub UserForm_click()
  2. ComboBox3.Rowsource = "Feuil10!F11:F12" 'Récupération des Données à partir de la feuille 10, 2 choix possible : Module/onduleur
  3. If ComboBox3.Text = "Module" Then
  4. Option Explicit
  5. 'La sélection du ComboBox1 (données colonne B) définit le contenu du ComboBox2 (données colonne 1)
  6. Dim TabTemp As Variant
  7. Dim L As Long
  8. 'Mémorise les données dans un tableau variant temporaire
  9. With Sheets("Module" )
  10. L = .Cells(.Rows.Count, 1).End(xlUp).Row
  11. TabTemp = .Range(.Cells(2, 1), .Cells(L, 3)).Value
  12. End With
  13. 'Remplir ComboBox1
  14. RemplirCbo 1, ""
  15. Else
  16. Dim L As Long
  17. 'Mémorise les données dans un tableau variant temporaire
  18. With Sheets("Onduleur" )
  19. L = .Cells(.Rows.Count, 1).End(xlUp).Row
  20. TabTemp = .Range(.Cells(2, 1), .Cells(L, 3)).Value
  21. End With
  22. 'Remplir ComboBox1
  23. RemplirCbo 1, ""
  24. End Sub
  25. Private Sub ComboBox1_Change()
  26. Dim x As String
  27. 'Remplir Combo2
  28. RemplirCbo 2, ComboBox1.Text
  29. x = ComboBox2.Text
  30. End Sub
  31. Private Sub RemplirCbo(Id As Byte, T As String)
  32. Dim Col As New Collection 'gestion doublons
  33. Dim Cbo As Control
  34. Dim L As Long
  35. 'RAZ ComboBox
  36. For L = 2 To Id Step -1
  37. Controls("Combobox" & L).Clear
  38. Next L
  39. 'MAJ ComboBox (sans doublon)
  40. Set Cbo = Controls("Combobox" & Id)
  41. For L = 1 To UBound(TabTemp, 1)
  42. If TabTemp(L, 2) <> "" Then 'Pour éviter les lignes de titre
  43. If Id = 1 Then 'Pour la première ComboBox
  44. TabTemp(L, 3) = 1
  45. On Error Resume Next
  46. Col.Add TabTemp(L, 2), CStr(TabTemp(L, 2))
  47. On Error GoTo 0
  48. If Col.Count > Cbo.ListCount Then Cbo.AddItem TabTemp(L, 2)
  49. Else 'Pour la suivante
  50. If TabTemp(L, Id) = T Then
  51. If TabTemp(L, 3) = 1 Then
  52. On Error Resume Next
  53. Col.Add TabTemp(L, 1), CStr(TabTemp(L, 1))
  54. On Error GoTo 0
  55. If Col.Count > Cbo.ListCount Then Cbo.AddItem TabTemp(L, 1)
  56. End If
  57. End If
  58. End If
  59. End If
  60. Next L
  61. End Sub
  62. Sub CommandButton1_Click()
  63. 'MsgBox "Modèle choisi = " & ComboBox2.Text
  64. ' Sheets("D1" ).Select
  65. 'Range("B49" ).Select
  66. ActiveCell.Value = ComboBox2.Text
  67. Unload userform1
  68. End Sub


 
 
Si quelqu'una une idée... Merci d'avance!

mood
Publicité
Posté le 14-04-2010 à 15:26:11  profilanswer
 

n°1984151
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 15-04-2010 à 09:15:22  profilanswer
 


Désolé, mais ton code est illisible.  
Pas d'indentations, des déclarations de variables n'importe où, option explicit qui devrait être en 1ère ligne de module, etc...
 
Commence par faire un peu de ménage, et peut-être que ça donnera envie de se pencher dessus.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Erreur code VBA sur Excel2007

 

Sujets relatifs
Liste déroulante VBAerreur d'éxécution 91
erreur application vb.net[VBA] remplir une colonne excel avec une variable tableau
code java pour afficher un frame en click sur le menu en netbeansGestion unlink() erreur 404 alors que bon chemin
code java pour afficher un frame en click sur le menu netbeansSujet: Recupéré code source page file_get_contents()
Comparaison de chaines de caracteres dans 2 listes en VBAFormule VBA Cells.find
Plus de sujets relatifs à : Erreur code VBA sur Excel2007


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR