S
shasha
Guest
Bonsoir à tous,
J'ai plein de petit souci entre les while, case et if !!!
J'ai une feuille excel sur laquelle je stocke mes voitures avec les marques les modèles et d'autres critères. Elles sont stockées sous forme de liste avec filtre.
J'ai créé un userform et je souhaiterai qu'il affiche la liste des modèles + d'autres info de la ligne en fonction du modèle que j'ai sélectionné dans une liste déroulante. la liste est à sélection unique
Mais cela ne marche pas !! En fait j'ai voulu utiliser un "case" mais avec la valeur d'une cellule au lieu d'un texte. Je ne sais pas si cela est possible.
J'ai aussi essayé avec if mais alors là cela ne marche pas du tout.
Index = 8 (ma liste commence à partir de la ligne 8)
POINT.Clear (c'est le nom de ma liste)
While Sheets("VOITURE").Cells(Index, 1) <> ""
Select Case Sheets("VOITURE").Cells(Index, 2).Value
Case Sheets("STEP 4").Cells(10, 4).Value
POINT.AddItem (Sheets("VOITURE").Cells(Index, 4) + ": " + Sheets("VOITURE").Cells(Index, 1) + " - " + Sheets("VOITURE").Cells(Index, 2))
End Select
Index = Index + 1
Wend
End Sub
J'ai 2 autres questions:
1- Une fois qu'il m'affiche la liste et que j'ai sélectionné une ligne, comment récuperer la valeur de la première colonne de la feuille où sont stockée les info de la ligne sélectionnée. Pour l'instant je sais seulement récuperer:
- soit les colonnes mais pour une liste à choix multiple
- soit les 1er caractères à gauche dans le cas d'une liste à sélection unique
2- comment peux-on mélander du while avec du case et du if dans un userform pour qu'il me détermine les valeurs d'une liste déroulante:
En fait, je souhaite pouvoir faire:
- du while pour sélectionner que les lignes non vides d'une feuille excel
- du if pour sélectionner les lignes non vides dont la colonne 2 correspond au numéro de client que j'ai saisi dans la feuille où j'ai mis mon userform
- du case pour qu'il me sélectionne que les lignes non vides pour le client sélectionné dont la valeur de la colonne 7 est = EN COURS
J'ai essayé plein de truc mais soit il reconnait pas le END IF soit le WEND
exemple:
Private Sub UserForm_Initialize()
Index = 7
BDETUDE.Clear
While Sheets("BDETUDE").Cells(Index, 1) <> ""
IF Sheets("BDETUDE").Cells(Index, 1).value = ("CLIENT").Cells(1, 4).value then
Select Case Sheets("BDETUDE").Cells(Index, 7).Value
Case "EN COURS"
BDETUDE.AddItem (Sheets("BDETUDE").Cells(Index, 1) + ": " + Sheets("BDETUDE").Cells(Index, 2) + " - " + Sheets("BDETUDE").Cells(Index, 5))
End Select
End if
Index = Index + 1
Wend
End Sub
Merci d'avance pour votre aide
A+
Shasha
J'ai plein de petit souci entre les while, case et if !!!
J'ai une feuille excel sur laquelle je stocke mes voitures avec les marques les modèles et d'autres critères. Elles sont stockées sous forme de liste avec filtre.
J'ai créé un userform et je souhaiterai qu'il affiche la liste des modèles + d'autres info de la ligne en fonction du modèle que j'ai sélectionné dans une liste déroulante. la liste est à sélection unique
Mais cela ne marche pas !! En fait j'ai voulu utiliser un "case" mais avec la valeur d'une cellule au lieu d'un texte. Je ne sais pas si cela est possible.
J'ai aussi essayé avec if mais alors là cela ne marche pas du tout.
Index = 8 (ma liste commence à partir de la ligne 8)
POINT.Clear (c'est le nom de ma liste)
While Sheets("VOITURE").Cells(Index, 1) <> ""
Select Case Sheets("VOITURE").Cells(Index, 2).Value
Case Sheets("STEP 4").Cells(10, 4).Value
POINT.AddItem (Sheets("VOITURE").Cells(Index, 4) + ": " + Sheets("VOITURE").Cells(Index, 1) + " - " + Sheets("VOITURE").Cells(Index, 2))
End Select
Index = Index + 1
Wend
End Sub
J'ai 2 autres questions:
1- Une fois qu'il m'affiche la liste et que j'ai sélectionné une ligne, comment récuperer la valeur de la première colonne de la feuille où sont stockée les info de la ligne sélectionnée. Pour l'instant je sais seulement récuperer:
- soit les colonnes mais pour une liste à choix multiple
- soit les 1er caractères à gauche dans le cas d'une liste à sélection unique
2- comment peux-on mélander du while avec du case et du if dans un userform pour qu'il me détermine les valeurs d'une liste déroulante:
En fait, je souhaite pouvoir faire:
- du while pour sélectionner que les lignes non vides d'une feuille excel
- du if pour sélectionner les lignes non vides dont la colonne 2 correspond au numéro de client que j'ai saisi dans la feuille où j'ai mis mon userform
- du case pour qu'il me sélectionne que les lignes non vides pour le client sélectionné dont la valeur de la colonne 7 est = EN COURS
J'ai essayé plein de truc mais soit il reconnait pas le END IF soit le WEND
exemple:
Private Sub UserForm_Initialize()
Index = 7
BDETUDE.Clear
While Sheets("BDETUDE").Cells(Index, 1) <> ""
IF Sheets("BDETUDE").Cells(Index, 1).value = ("CLIENT").Cells(1, 4).value then
Select Case Sheets("BDETUDE").Cells(Index, 7).Value
Case "EN COURS"
BDETUDE.AddItem (Sheets("BDETUDE").Cells(Index, 1) + ": " + Sheets("BDETUDE").Cells(Index, 2) + " - " + Sheets("BDETUDE").Cells(Index, 5))
End Select
End if
Index = Index + 1
Wend
End Sub
Merci d'avance pour votre aide
A+
Shasha