Extraction de données vers un userform - VB/VBA/VBS - Programmation
Marsh Posté le 09-06-2005 à 15:12:29
Citation : des conseils pour executer cette macro dès l'ouverture de ce classeur |
à mettre dans thisworkbook :
sub Workbook_open
...
end sub
Citation : faire apparaitre une msgbox avec oui et non me demandant si je veux ajouter des titres a la feuille de données : |
tape msgbox dans l'aide tu trouvera ton bonheur
Citation : rejoindre la première ligne vide de la première colonne de la feuille de données |
De même avec SpecialCells et XlCellTypeLastCell
Citation : executer l'userform |
Userform.show ??
Citation : Enfin J'aimerais masquer la feuille contenant les données ou de les protégées de modification par un mot de passe... |
Outil -> Protection -> Proteger la feuille
Citation : Merci d'avance à celui qui essayera de m'aider |
De rien ...
Marsh Posté le 09-06-2005 à 17:07:59
Dois je recopier le code de mon userform dans le code de "this workbook ???? Y'a-t-il des changements a faire dans mon code original car l'image et les données de la listbox1 ne s'affichent plus????
En ce qui concerne le masquage de la feuille ainsi que la protection je cherche a le mettre en place dans VBA...
Enfin, pourriez vous m'expliquer comment mettre en forme le msgbox1 recherché ???? Cà doit être du genre If ....then...goto... non ????
Pour finir est-il pôssible d'améliorer cette rowsource afin que seules les cellueles non vides soient présentes dans la listbox1 ????
ListBox1.RowSource = "Feuill1!A1:A200" & ActiveSheet.UsedRange.Rows.Count
Marsh Posté le 09-06-2005 à 17:31:54
t'es pas obligé de tout recopier, tu peut surement y faire appel du style
sub Workbook_open
call LeNomDeTaMacro
end sub
pour programmer la protection de la feuille tu peux appliquer la méthode Potect à un objet Chart, Workbook ou Worksheet
et pour masquer ya la méthode Visible, et la tu peux l'appliquer à plein d'objet (cf l'aide)
Pour ta listBox c'est surement possible de rentre une plage avec selection multiple, mais je sais pas trop comment ca fonctionne
mais je trouve que le plus mieux est de parcourir toi même la plage de donnée, et de rentrer les élément un a un
c'est ptet pas ce qu'il ya de plus jolie mais au moin ca t'apprend un peu d'algo
ca donne un truc du genre
dim Ligne as integer
dim Col as integer
Ligne = 1
Colonne = 1
for Ligne=1 to 100
If Cells(Ligne, Col)<> "" then
Listbox1.add blablabla ...
end if
next
Marsh Posté le 09-06-2005 à 20:27:12
Auto Execution de l'userform marche bien...
Finalement j'ai opté pour la protection du classeur avec un mot de passe
En ce qui concerne le masquage de la feuill1 cela génère une erreur : c'est la seule feuille de mon classeur..peut être est ce du à ça...
Enfin, quand je ferme l'userform, mon classeur n'est plus en plein écran dans la fenêtre excel...dois-je réactiver la feuill1 dans le code ???
Pour ce qui est de rejoindre la dernière cellule non vide de ma colonne je n'ai pas encore testé
Merci
Marsh Posté le 09-06-2005 à 12:34:23
Bonjour à tous...
Nouvel utilisateur de VBA excel j'aimerais savoir comment extraire des données d'une feuille et de les présenter dans un userform.
Pour le moment mon userform ne me permet que de charger l'image correspondante à la valeur de la liste (ListBox1) et j'aimerais pouvoir charger dans des boites (à créer !!!) de l'userform les valeurs de la base de données correspondantes à cette même sélection de la listbox1
Exemple :
A B C D
Titre de la chanson Format Genre Chanteur(s)
1 Candy Shop mp3 Rap 50 Cent
2 Exodus wma Reggae Bob Marley
etc.
Le code se présente de cette manière :
Private Sub UserForm_non_modal()
End Sub
Private Sub UserForm_Initialize()
Dim W As Double
' 1024 pixels = 768 points
W = Application.UsableWidth / 768
Me.Zoom = CInt(W * 100)
Me.Width = Me.Width * W
Me.Height = Me.Height * W
' Disparition de la fenêtre Excel
Application.Visible = False
' Initialisation de la liste de la ListBox (a améliorer je suppose!!!)
ListBox1.RowSource = "Feuill1!A1:A200" & ActiveSheet.UsedRange.Rows.Count
' Sélection de l'index 1 de la liste
ListBox1.ListIndex = 0
End Sub
Private Sub ListBox1_Change()
nom = Userform.ListBox1.Value
On Error Resume Next
Fichier = ActiveWorkbook.Path & "\" & nom & ".jpg"
Userform.Image1.Picture = LoadPicture(Fichier)
End Sub
Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
'Apparition de la fenêtre Excel
Application.Visible = True
End Sub
J'aimerais aussi des conseils pour executer cette macro dès l'ouverture de ce classeur , faire apparaitre une msgbox avec oui et non me demandant si je veux ajouter des titres a la feuille de données : si oui, rejoindre la première ligne vide de la première colonne de la feuille de données ou non , executer l'userform.
Enfin J'aimerais masquer la feuille contenant les données ou de les protégées de modification par un mot de passe...
Merci d'avance à celui qui essayera de m'aider