Combobox et sélection de données

  • Initiateur de la discussion benjamin
  • Date de début
B

benjamin

Guest
Bonjour à tous

ca fait un bout de temps que je suis pas venu ici, mais là un ami m'a demandé un truc vba et j'avoue que g un peu de mal à m'y remettre et là g tout de suite repensé à excel-downloads et thierry le magnifique

Alors voilà mon problème (j'ai cherché avec la fonction recherche mais g pas trouvé), c'est très simple.

J'ai une feuille "projet" où j'ai la liste de mes projets en ligne donc une ligne par projet (avec dans la colonne B, le nom, et dans les colonne C à F des infos sur ce projet)

Ensuite j'ai une page principale "page1" où j'ai une combobox. Je veux que quand je sélectionne un projet les infos sur le projet s'affiche dans différentes cellules fixes de cette page1

J'ai déjà commencé mais j'arrive pas à voir le problème

Le code dans le workbook (ca ca marche):

Private Sub Workbook_open()

Dim derCell As String
derCell = Sheets("Projet").Range("B3").End(xlDown).Address
Sheets("Page1").CBprojet.ListFillRange = "Projet!B3:" & derCell

End Sub


et le code dans la "page1"

Private Sub CBprojet_Change()

For i = 2 To 100
Cells(i, "b").Select
If ActiveCell.Value = CBprojet.Value Then

ActiveCell.Offset(0, 1).Select
Range("Page1!L7").Value = ActiveCell.Value

ActiveCell.Offset(0, 1).Select
Range("Page1!D9").Value = ActiveCell.Value

ActiveCell.Offset(0, 1).Select
Range("Page1!L9").Value = ActiveCell.Value

ActiveCell.Offset(0, 1).Select
Range("Page1!D10").Value = ActiveCell.Value

ActiveCell.Offset(0, 1).Select
Range("Page1!L10").Value = ActiveCell.Value

End If
Next i

Range("A1").Select

End Sub



Merci d'avance pour votre contribution ;-)
 
@

@+Thierry

Guest
Salut Benjamin, le Forum

LoL pour le Magnifique !! (merci !!!)

Bon je prendrais le truc autrement, ici l'initialisation se fait dans l'Activation de la Feuille "Page1", mais tu peux lancer aussi dans WorkBook_Open

Option Explicit

Private Sub Worksheet_Activate()
Dim derCell As String
derCell = Sheets("Projet").Range("F3").End(xlDown).Address
With Me.CBProjet
.ColumnCount = 5
.ColumnWidths = "90;0;0;0;0"
.ListFillRange = "Projet!B3:" & derCell
End With
End Sub

Private Sub CBprojet_Change()
On Error Resume Next
With Me
.Range("A1") = .CBProjet.Column(0, .CBProjet.ListIndex)
.Range("L7") = .CBProjet.Column(1, .CBProjet.ListIndex)
.Range("D9") = .CBProjet.Column(2, .CBProjet.ListIndex)
.Range("L9") = .CBProjet.Column(3, .CBProjet.ListIndex)
.Range("D10") = .CBProjet.Column(4, .CBProjet.ListIndex)
End With

End Sub


En fait je mets toutes les infos dans la ComboBox, comme ceci plus de difficulté pour les retrouver, l'astuce est de jouer avec la largeur des colonnes pour ne montrer que la première...

Bonne Soirée
@+Thierry
 
B

benjamin

Guest
je suis désolé thierry el magnifico, mais le code tel que tu l'as écrit ne fonctionne pas il y a un message d'erreur quand je sélectionne un des projets. Apparement il aime pas trop le "option explicit"

ps : si je t'appelle comme ça, c'est parce que tu nous as sorti (moi et mon binome de l'époque) d'une situation bien difficile et nous te serons jamais assez reconnaissant pour ça ;-)
 
@

@+Thierry

Guest
Bonsoir Benjamin,

Option Explicit Oblige à déclarer les Variables, ou a détecter un nom d'objet incorrect.

Vérifies si tu as tout ce qu'il faut... Car moi je n'ai pas gardé le fichier mais j'avais compiler le code sans problème... En reprenant même tes propres dénomminations !! (CBProjet, Projet...)

Bonne Nuit
@+Thierry


PS as tu bien mis ce code dans le Private Module de la Feuille en Question ?
 

Statistiques des forums

Discussions
312 503
Messages
2 089 062
Membres
104 014
dernier inscrit
Aurélie MONTEIL