VBA et EXCEL besoin d'aide
thierrymalagnou
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
ShaBoo Messages postés 392 Date d'inscription Statut Membre Dernière intervention -
ShaBoo Messages postés 392 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis étudiant en suisse et je dois créer un programme vba sur excel.
Mon problème est le suivant: je dois avoir une base de donnée sur excel avec nom prénom domicile etc de clients. il faut pour chaque client une bouton qui ouvre la fiche client dans une fenetre (formulaire VBA) et qu'apparaissent les données sur Excel du client soit son nom prénom etc ... plus une série de 3 boutons afin de savir si "oui" "peut-etre" ou "non" on va garder ce client. selon la réponse cochée dans VBA le client va soit disparaitre pour le nom soit devenir vert pour le oui soit orange si c'est peut etre cette fois ci sur excel.
je vous remercie de votre future aide dont je vous serait éternellement reconnaisant
thierry
je suis étudiant en suisse et je dois créer un programme vba sur excel.
Mon problème est le suivant: je dois avoir une base de donnée sur excel avec nom prénom domicile etc de clients. il faut pour chaque client une bouton qui ouvre la fiche client dans une fenetre (formulaire VBA) et qu'apparaissent les données sur Excel du client soit son nom prénom etc ... plus une série de 3 boutons afin de savir si "oui" "peut-etre" ou "non" on va garder ce client. selon la réponse cochée dans VBA le client va soit disparaitre pour le nom soit devenir vert pour le oui soit orange si c'est peut etre cette fois ci sur excel.
je vous remercie de votre future aide dont je vous serait éternellement reconnaisant
thierry
A voir également:
- VBA et EXCEL besoin d'aide
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Déplacer colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
6 réponses
Bonjour thierrymalagnou,
Voici un exemple de code à adapter à ton cas :
Dans le "UserForm1"
Dans cet exemple, les données clients sont dans les colonnes "K" et "L" (j'ai limité le nombre de colonnes pour le test). Le "Userform1" comprend donc 2 zones de texte : "'TextBox1" et "TextBox2". Dans le Click du bouton 2, tu as le choix entre masquer le client (1ère ligne) ou le supprimer (2ème ligne).
Ensuite, dans chaque bouton de la feuille Clients, tu entres le code suivant :
Je pense toutefois qu'il y a plus simple : un seul bouton sur la feuille client pour lancer le 'UserForm1', après avoir, bien sûr, sélectionné un nom.
Espérant t'avoir aiguillé convenablement.
Cordialement.
Voici un exemple de code à adapter à ton cas :
Dans le "UserForm1"
Private Sub CommandButton1_Click() ' Bouton "Oui" ActiveCell.Range("A1:B1").Interior.ColorIndex = 4 End Sub Private Sub CommandButton2_Click() ' Bouton "Non" ActiveCell.EntireRow.Hidden = True ActiveCell.EntireRow.Delete End Sub Private Sub CommandButton3_Click() ' Bouton "Peut-être" ActiveCell.Range("A1:B1").Interior.ColorIndex = 45 End Sub Private Sub UserForm_Activate() TextBox1.Text = ActiveCell.Value TextBox2.Text = ActiveCell.Offset(0, 1).Value End Sub
Dans cet exemple, les données clients sont dans les colonnes "K" et "L" (j'ai limité le nombre de colonnes pour le test). Le "Userform1" comprend donc 2 zones de texte : "'TextBox1" et "TextBox2". Dans le Click du bouton 2, tu as le choix entre masquer le client (1ère ligne) ou le supprimer (2ème ligne).
Ensuite, dans chaque bouton de la feuille Clients, tu entres le code suivant :
Private Sub CommandButton1_Click() Cells(1, 11).Select ' Sélectionne la cellule du nom du client UserForm1.Show End Sub
Je pense toutefois qu'il y a plus simple : un seul bouton sur la feuille client pour lancer le 'UserForm1', après avoir, bien sûr, sélectionné un nom.
Espérant t'avoir aiguillé convenablement.
Cordialement.
Bonjour,
Pourquoi ne pas faire 2 UserForm :
- une qui afficherait la liste des tes clients dans une ListeBox alimenté par ta feuille excel
- la deuxième qui afficherait le détail d'un des clients, sélectionné dans la ListeBox de la première UserForm, et comportant une CheckBox avec la propriété "TripleState" à True et un bouton validé.
De cette façon tu n'auras pas à gérer X boutons pour X clients !!!
@+
Pourquoi ne pas faire 2 UserForm :
- une qui afficherait la liste des tes clients dans une ListeBox alimenté par ta feuille excel
- la deuxième qui afficherait le détail d'un des clients, sélectionné dans la ListeBox de la première UserForm, et comportant une CheckBox avec la propriété "TripleState" à True et un bouton validé.
De cette façon tu n'auras pas à gérer X boutons pour X clients !!!
@+
merci pour la réponse
c'est vrai qu'un seul bouton serait mieux mais il faudrait alors séléctioner le client et appuyer sur un bouton central qui ouvrirait la fiche du client désiré?
je suis désolé mais j'ai un probleme avec les couleurs, rien n'apparait.
c'est vrai qu'un seul bouton serait mieux mais il faudrait alors séléctioner le client et appuyer sur un bouton central qui ouvrirait la fiche du client désiré?
je suis désolé mais j'ai un probleme avec les couleurs, rien n'apparait.
et par tout hasard tu ne sais pas comment faire?
Bonjour,
Regarde ceci :
http://www.cijoint.fr/cij14005344628248.xls
Enregistre le fichier et ouvre-le.
Menu "Outils"=> "Macro"=>"Macros" : sélectionner "ShowListClient" => "Exécuter".
Bien sur, ce n'est qu'une coquille. Il te faudra faire le remplissage de la ListBox avec les éléments contenus sur ta feuille excel dans la première UserForm, et effectuer le traitement adéquat du client séléctionné et affiché dans la 2ème UserForm en fonction du choix de la CheckBox (trois états) lorsque tu appuieras sur le bouton "Valider".
Si tu as besoin de précision ...
@+
Regarde ceci :
http://www.cijoint.fr/cij14005344628248.xls
Enregistre le fichier et ouvre-le.
Menu "Outils"=> "Macro"=>"Macros" : sélectionner "ShowListClient" => "Exécuter".
Bien sur, ce n'est qu'une coquille. Il te faudra faire le remplissage de la ListBox avec les éléments contenus sur ta feuille excel dans la première UserForm, et effectuer le traitement adéquat du client séléctionné et affiché dans la 2ème UserForm en fonction du choix de la CheckBox (trois états) lorsque tu appuieras sur le bouton "Valider".
Si tu as besoin de précision ...
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tout d'abord merci
le seul probleme est que je n'arrrive pas a remplire le premier formulaire du nom des clients.
comment faut il faire pour faire apparaitre les noms dans ce formulaire ?
j'ai une autre question. si je rajoute dans le formulaire (détail client) un multipage avec deux onglets ou je peux saisir du texte dedans. Comment dois je faire pour que le texte inséré soit sauvegardé car a chaque fois que je réouvre tout disparait
merci d'avance
thierry
le seul probleme est que je n'arrrive pas a remplire le premier formulaire du nom des clients.
comment faut il faire pour faire apparaitre les noms dans ce formulaire ?
j'ai une autre question. si je rajoute dans le formulaire (détail client) un multipage avec deux onglets ou je peux saisir du texte dedans. Comment dois je faire pour que le texte inséré soit sauvegardé car a chaque fois que je réouvre tout disparait
merci d'avance
thierry
"le seul probleme est que je n'arrrive pas a remplire le premier formulaire du nom des clients.
comment faut il faire pour faire apparaitre les noms dans ce formulaire ?"
Il faut utiliser la propriété RowSource de la ListBox.
"si je rajoute dans le formulaire (détail client) un multipage avec deux onglets ou je peux saisir du texte dedans. Comment dois je faire pour que le texte inséré soit sauvegardé car a chaque fois que je réouvre tout disparait".
Normal que cela ne sauvegade pas ton texte. Comme je te l'ai dit, c'est une coquille, il faudra faire un traitement pour associer le texte saisi à la ligne séléctionné (v. colonne caché dans la ListBox). Ainsi lorsque tu valideras, cette information ne seras pas perdue. De plus, tu
n'as pas besoin de faire un multipage. Il te suffit de dessiner une zone de saisie sur la 2ème UserForm.
voir ceci : http://www.cijoint.fr/cij14962782028255.xls
PS : je suis au taf ... je pourrais te donner plus de précision ce soir si tu veux ...
comment faut il faire pour faire apparaitre les noms dans ce formulaire ?"
Il faut utiliser la propriété RowSource de la ListBox.
"si je rajoute dans le formulaire (détail client) un multipage avec deux onglets ou je peux saisir du texte dedans. Comment dois je faire pour que le texte inséré soit sauvegardé car a chaque fois que je réouvre tout disparait".
Normal que cela ne sauvegade pas ton texte. Comme je te l'ai dit, c'est une coquille, il faudra faire un traitement pour associer le texte saisi à la ligne séléctionné (v. colonne caché dans la ListBox). Ainsi lorsque tu valideras, cette information ne seras pas perdue. De plus, tu
n'as pas besoin de faire un multipage. Il te suffit de dessiner une zone de saisie sur la 2ème UserForm.
voir ceci : http://www.cijoint.fr/cij14962782028255.xls
PS : je suis au taf ... je pourrais te donner plus de précision ce soir si tu veux ...
ca me rend fou VBA
je sais pas comment tu fais.
merci je vais essayer de bidouiller.
bon courage au taf
je sais pas comment tu fais.
merci je vais essayer de bidouiller.
bon courage au taf
"ca me rend fou VBA "
Il faut que tu te concentres sur les propriétés et les méthodes des objets. N'hésites pas à utiliser l'aide en ligne, il ya des exemples simples et intéressants ...
Si tu as besoin de plus de précision, fais moi parvenir un msg en MP ...
Je compléterais le fichier excel ce soir ...
Il faut que tu te concentres sur les propriétés et les méthodes des objets. N'hésites pas à utiliser l'aide en ligne, il ya des exemples simples et intéressants ...
Si tu as besoin de plus de précision, fais moi parvenir un msg en MP ...
Je compléterais le fichier excel ce soir ...