chris09300
Messages postés140Date d'inscriptionlundi 9 juin 2008StatutMembreDernière intervention18 avril 2012
-
4 nov. 2011 à 21:16
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
5 nov. 2011 à 11:20
J'espere que cette fois je suis dans le bon theme, a chaque fois je mis perd.
excuser moi encore
je travaille sur excel 2007
je le probleme suivant.
j'ai un userform dans lequel j'ai une listbox alimentee par des donnees d'une feuille.
j'ai bien le resultat escompter, sans mise en forme, je souhaiterais mettre ces donnees sous forme d'un tableau.
merci pour vos conseil
cris
voici le code que j'ai.
Code Visual Basic :
Option Explicit
Const LIGNE_DEBUT_LISTE As Integer = 2
Const LIGNE_FIN_LISTE As Integer = 70 'est la limite à modifier en fonction de la longueur de la liste du tableau Excel
Const COLONNE_Nº As Integer = 1
Const COLONNE_PRENOM As Integer = 2
Const COLONNE_Nom As Integer = 3
Const COLONNE_datenaissance As Integer = 4
Dim iLigne As Integer
Private Sub Userform_Initialize()
With ThisWorkbook.Sheets(3) 'ou : With ThisWorkbook.Sheets("BD1")
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = "20;60;60"
For iLigne = LIGNE_DEBUT_LISTE To LIGNE_FIN_LISTE
ListBox1.AddItem
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 0) = .Cells(iLigne, COLONNE_Nº).Value
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 1) = .Cells(iLigne, COLONNE_PRENOM).Value
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 2) = .Cells(iLigne, COLONNE_Nom).Value
Next iLigne
End With
ListBox1.Selected(0) = True
End Sub
Private Sub ListBox1_Click()
For iLigne = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(iLigne) = True Then
datenaissance ThisWorkbook.Sheets(3).Cells(iLigne + LIGNE_DEBUT_LISTE, COLONNE_datenaissance).Value 'datenaissance ... au lieu de : TextBox_datenaissance = ... car le TextBoax se nomme : datenaissance
End If
Next iLigne
End Sub
Private Function fctAge(ByVal DN As Variant) As String
If IsDate(DN) Then
fctAge = CStr(DateDiff("yyyy", Me.datenaissance.Value, Date))
Else
fctAge = ""
End If
End Function
Private Sub datenaissance_Change()
If IsDate(Me.datenaissance.Value) Then Me.Age.Value = fctAge(Me.datenaissance.Value)
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 5 nov. 2011 à 11:20
Bonjour,
J'ai toujours des difficultés à comprendre, dans les cas comme celui-ci (où il s'agit de quoi ? ==>> de "réafficher" finalement en moins bien une portion de feuille) l'utilité de passer par un autre contrôle alors que Excel est le meilleur outil en soi pour présenter des "tableaux".
Même s'il s'agissait de s'offrir la possibilité d'utiliser, dans un userform, une portion de feuille, on peut toujours le faire simplement en créant une nouvelle feuille (y compris temporaire) ne contenant que les données concernées et insérée directement dans le userform (qu'on rend parent de cette feuille). Les avantages sont multiples (mise en forme, calculs éventuels, etc...). Qui plus est : si, pour une raison ou une autre, on souhaite garder ce "tableau", rien de plus simple : on garde cette feuille dans le classeur et on la réaffiche dans le userform à la prochaine ouverture.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 4 nov. 2011 à 21:26
Pas bonjour non plus
Apparemment, tu n'as pas compris ce que "coloration syntaxique" veut dire :
Colle ton code ici
Sélectionne le code collé entièrement
Clique si la 3ème icone à droite
C'est tout, ne touche plus à rien, ne supprime pas de balise.
"je souhaiterais mettre ces donnees sous forme d'un tableau."
Ca ne veut rien dire
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
chris09300
Messages postés140Date d'inscriptionlundi 9 juin 2008StatutMembreDernière intervention18 avril 20121 4 nov. 2011 à 21:33
sur les anciens posts j'ai dis bonjour, ce que je fait toujours en general.
alors bonsoir a tous
je souhaite avoir dans une viewlist mes donnees avec une visualisation comme sur une feuille excel , cest a dire avec des lignes et des colonnes pour mieux m'y retrouver.
Option Explicit
Const LIGNE_DEBUT_LISTE As Integer = 2
Const LIGNE_FIN_LISTE As Integer = 70 'est la limite à modifier en fonction de la longueur de la liste du tableau Excel
Const COLONNE_Nº As Integer = 1
Const COLONNE_PRENOM As Integer = 2
Const COLONNE_Nom As Integer = 3
Const COLONNE_datenaissance As Integer = 4
Dim iLigne As Integer
Private Sub Userform_Initialize()
With ThisWorkbook.Sheets(3) 'ou : With ThisWorkbook.Sheets("BD1")
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = "20;60;60"
For iLigne = LIGNE_DEBUT_LISTE To LIGNE_FIN_LISTE
ListBox1.AddItem
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 0) = .Cells(iLigne, COLONNE_Nº).Value
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 1) = .Cells(iLigne, COLONNE_PRENOM).Value
ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 2) = .Cells(iLigne, COLONNE_Nom).Value
Next iLigne
End With
ListBox1.Selected(0) = True
End Sub
Private Sub ListBox1_Click()
For iLigne = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(iLigne) = True Then
datenaissance ThisWorkbook.Sheets(3).Cells(iLigne + LIGNE_DEBUT_LISTE, COLONNE_datenaissance).Value 'datenaissance ... au lieu de : TextBox_datenaissance = ... car le TextBoax se nomme : datenaissance
End If
Next iLigne
End Sub
Private Function fctAge(ByVal DN As Variant) As String
If IsDate(DN) Then
fctAge = CStr(DateDiff("yyyy", Me.datenaissance.Value, Date))
Else
fctAge = ""
End If
End Function
Private Sub datenaissance_Change()
If IsDate(Me.datenaissance.Value) Then Me.Age.Value = fctAge(Me.datenaissance.Value)
End Sub
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 4 nov. 2011 à 23:10
Je ne m'exciterais pas sur la méthode à utiliser pour coloriser du code, je pense que c'est peine perdue.
Oh pis si.
Est-ce que tu prends le temps de lire ce qu'on t'écrit ?
[i]Colle ton code ici
Sélectionne le code collé entièrement
Clique si la 3ème icone à droite
C'est tout, ne touche plus à rien, ne supprime pas de balise./i Est-ce que c'est si dure à appliquer ?
Quant à ton problème :
Tu nous dis en quelques mots ce que tu souhaites, puis tu nous colles du code, y compris du code qui n'a rien à voir avec le problème.
La prochaine fois, ne colle que la partie qui remplit ta ListView, le reste, on s'en fiche. Pourquoi voudrais-tu qu'un Clic change quoi que ce soit aux données ou à leur présentation ?
Prends le temps d'exposer clairement ton problème.
Dire que ça ne marche pas ne suffit pas.
Que reproches-tu à ton code ?
Que vois-tu ?
Qu'est ce qui ne te plait pas dans ce que tu vois ?
On n'est pas sur un Chat, c'est un forum.
Il faut être clair, précis et donner le maximum de détails à la première demande. N'attends pas qu'on te les demande - on n'est pas 24h/24 devant l'écran pour les doux yeux des autres - si ton problème traine en longueur, on risque de ne plus aller le suivre ...
chris09300
Messages postés140Date d'inscriptionlundi 9 juin 2008StatutMembreDernière intervention18 avril 20121 5 nov. 2011 à 10:30
bonjour
j'ai regarder pour faire un datagridview mais je n'est pas trouver de tutos. je veux bien essayer. Connais tu un lien ou je pourrais trouver des infos, mercia toi
cris