Aide débutant en VBA
Résolu/Fermé
A voir également:
- Aide débutant en VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba dernière colonne non vide ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
18 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
18 sept. 2010 à 11:50
18 sept. 2010 à 11:50
Bonjour,
Regarde ici: https://rp.developpez.com/vb/tutoriels/mysql/
C'est pour du VB mais ça doit aussi marché en VBA.
Si tu débutes en programmation, tu risque d'avoir quelques problèmes pour comprendre le fonctionnement des exemples donnés.
Exerces toi avec les exemples pour comprendre comment ça fonctionne.
ATTENTION, il te faut le fichier libmySQL.dll dans le répertoire windows pour que ça fonctionne correctement.
Bon courage
;o)
Regarde ici: https://rp.developpez.com/vb/tutoriels/mysql/
C'est pour du VB mais ça doit aussi marché en VBA.
Si tu débutes en programmation, tu risque d'avoir quelques problèmes pour comprendre le fonctionnement des exemples donnés.
Exerces toi avec les exemples pour comprendre comment ça fonctionne.
ATTENTION, il te faut le fichier libmySQL.dll dans le répertoire windows pour que ça fonctionne correctement.
Bon courage
;o)
Philippe Forget
Messages postés
23
Date d'inscription
dimanche 1 août 2010
Statut
Membre
Dernière intervention
26 décembre 2011
3
5 sept. 2010 à 01:03
5 sept. 2010 à 01:03
Salut sou ... Je vais ésaiyer de t'aider le plus possible donc voici
http://www.siteduzero.com/tutoriel-3-134798-visual-basic-net.html</code> Ses le site du zero ta juste a chercher quesque ta besoin et voîla
Tout les Code sont ! :)
Voici le code pour une progresse bar
______________Timer_____________________
ProgressBar1.Increment(1)
if progressbar1.value = Progressbar1.Maximum then
_____________Button_____________________
timer1.start()
Merci
cousinhub29
Messages postés
881
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 avril 2024
333
5 sept. 2010 à 01:03
5 sept. 2010 à 01:03
Bonjour,
Pas de soucis, mais il va falloir partir sur une base....
Si tu as déjà l'ébauche d'un fichier, avec des données anonymisées, on peut commencer à travailler dessus...
Pour joindre ton fichier exemple, utilise un de ces liens :
http://www.cijoint.fr/
https://www.cjoint.com/
Bon courage
Pas de soucis, mais il va falloir partir sur une base....
Si tu as déjà l'ébauche d'un fichier, avec des données anonymisées, on peut commencer à travailler dessus...
Pour joindre ton fichier exemple, utilise un de ces liens :
http://www.cijoint.fr/
https://www.cjoint.com/
Bon courage
Le probleme c'est que je n'ai rien ....
J'ai page 1 : juste une listbox : je sais pas comment y mettre les onglets des personnes ( qui se trouvent dans des cellules pages 2)
Je viens de débuter... j'arrive pas a gérer la parties interconnections...
Si tu as msn :$ ....
J'ai page 1 : juste une listbox : je sais pas comment y mettre les onglets des personnes ( qui se trouvent dans des cellules pages 2)
Je viens de débuter... j'arrive pas a gérer la parties interconnections...
Si tu as msn :$ ....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cousinhub29
Messages postés
881
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 avril 2024
333
5 sept. 2010 à 01:17
5 sept. 2010 à 01:17
Re-,
Tu comprendras aisément que je ne vais pas développer via MSN, le principe d'un forum étant de faire participer, et progresser tout le monde....
Comme tu l'as dit :
Il va donc falloir que tu commences par créer une base, pour l'insertion dans des objets ActiveX (objets comme ListBox, Combobox...), on verra par la suite pour les alimenter, et les utiliser...
Mais, et je me répète, il te faut une base de travail....(à priori, déjà renseignée en Feuil2...)
On peut partir de là...
@ te relire
Tu comprendras aisément que je ne vais pas développer via MSN, le principe d'un forum étant de faire participer, et progresser tout le monde....
Comme tu l'as dit :
je ne demande absolument pas qu'on me le fasse
Il va donc falloir que tu commences par créer une base, pour l'insertion dans des objets ActiveX (objets comme ListBox, Combobox...), on verra par la suite pour les alimenter, et les utiliser...
Mais, et je me répète, il te faut une base de travail....(à priori, déjà renseignée en Feuil2...)
On peut partir de là...
@ te relire
Re,
Ok je comprends et tu as tout a fait raison...
Je vais tâcher d'avancer dans la partie design, et remplissage et je reviendrais je pense demain avec un "support"
Par contre besoin juste d'une réponse:
Lorsqu'on créait une listbox en page 1 , et que l'on a ses données en page 2... comment faire pour ces données soit intégrés dans la listbox ( avec des checkbox ? ou les objets ne sont pas additionnable?) ... un début de réponse serait sympa en cette nuit de travail ^^ car je patauge
Merci
Ok je comprends et tu as tout a fait raison...
Je vais tâcher d'avancer dans la partie design, et remplissage et je reviendrais je pense demain avec un "support"
Par contre besoin juste d'une réponse:
Lorsqu'on créait une listbox en page 1 , et que l'on a ses données en page 2... comment faire pour ces données soit intégrés dans la listbox ( avec des checkbox ? ou les objets ne sont pas additionnable?) ... un début de réponse serait sympa en cette nuit de travail ^^ car je patauge
Merci
cousinhub29
Messages postés
881
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 avril 2024
333
5 sept. 2010 à 01:37
5 sept. 2010 à 01:37
Re-,
On va donc utiliser les objets ActiveX, objets issus de la barre d'outils (BO) "Contrôles", et non "Formulaires", car les objets ActiveX sont plus faciles à coder..
Tu as sur ta feuille 1 une Listbox (nommée ListBox1), et un CommandButton (nommé CommandButton1)
Tu doubles-cliques sur le bouton de commande, tout en étant en mode création (le premier bouton de la BO "Contrôles", qui ressemble à une équerre, doit être enfoncé).
Tu arrives alors sur le code de la feuille 1, et tu as déjà ceci :
Ensuite, tu insères ce code, pour charger ta ListBox :
Désactive le bouton "Création", et appuie sur le bouton de commande, tu auras les noms de la feuille 2, de la cellule A1 à la dernière cellule remplie de la colonne A de la feuille 2 (tu peux modifier la colonne et/ou la première ligne...)
Bon courage
On va donc utiliser les objets ActiveX, objets issus de la barre d'outils (BO) "Contrôles", et non "Formulaires", car les objets ActiveX sont plus faciles à coder..
Tu as sur ta feuille 1 une Listbox (nommée ListBox1), et un CommandButton (nommé CommandButton1)
Tu doubles-cliques sur le bouton de commande, tout en étant en mode création (le premier bouton de la BO "Contrôles", qui ressemble à une équerre, doit être enfoncé).
Tu arrives alors sur le code de la feuille 1, et tu as déjà ceci :
Private Sub CommandButton1_Click() End Sub
Ensuite, tu insères ce code, pour charger ta ListBox :
Private Sub CommandButton1_Click() Dim Cel As Range 'déclaration de la variable Cel Me.ListBox1.Clear 'on vide la listbox au début With Sheets("Feuil2") 'sur la feuille 2 For Each Cel In .Range("A1:A" & .[A65000].End(xlUp).Row) 'de la cellule A1 à la dernière cellule remplie de la colonne A (feuille 2) Me.ListBox1.AddItem Cel.Value 'on charge la listbox Next Cel 'cellule suivante End With 'fin de l'instruction With, qui nous instanciait sur la feuille 2 End Sub
Désactive le bouton "Création", et appuie sur le bouton de commande, tu auras les noms de la feuille 2, de la cellule A1 à la dernière cellule remplie de la colonne A de la feuille 2 (tu peux modifier la colonne et/ou la première ligne...)
Bon courage
Merci beaucoup, je comprends déja mieux , jmattendais a une formule ... on peut utiliser les celulles donc et en plus en lui disant jusqu'au "dernier mot"
En tout cas, déjà merci... la j'avance tout doucement, je pense te recontacter sur ce post dans la journée pour te dire ou j'en suis...
Bonne nuit
En tout cas, déjà merci... la j'avance tout doucement, je pense te recontacter sur ce post dans la journée pour te dire ou j'en suis...
Bonne nuit
cousinhub29
Messages postés
881
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 avril 2024
333
Modifié par cousinhub29 le 5/09/2010 à 02:00
Modifié par cousinhub29 le 5/09/2010 à 02:00
Re-,
Ce n'est pas statique du tout, car comme expliqué, je vais jusqu'à la dernière cellule remplie de la colonne A....
Donc, si tu ajoutes des personnes, tu reviens sur la feuille 1, et tu cliques à nouveau sur le bouton...
Tous les objets s'initialisent via un code macro, et non par formule....
Tu peux néanmoins utiliser l'option "Données/Validation", afin d'alimenter une cellule contenant une liste déroulante...
Dans ce cas, il faut nommer la liste "origine", via Insertion/Nom/Définir, car on ne peut pas faire référence à une autre feuille pour alimenter cette liste
Bonne nuit
Ce n'est pas statique du tout, car comme expliqué, je vais jusqu'à la dernière cellule remplie de la colonne A....
Donc, si tu ajoutes des personnes, tu reviens sur la feuille 1, et tu cliques à nouveau sur le bouton...
Tous les objets s'initialisent via un code macro, et non par formule....
Tu peux néanmoins utiliser l'option "Données/Validation", afin d'alimenter une cellule contenant une liste déroulante...
Dans ce cas, il faut nommer la liste "origine", via Insertion/Nom/Définir, car on ne peut pas faire référence à une autre feuille pour alimenter cette liste
Bonne nuit
Oui j'ai édité mon post avant ta derniere réponse
, je n'ai vu qu'apres tes commentaires dans le code... désolé
Bonne nuit
, je n'ai vu qu'apres tes commentaires dans le code... désolé
Bonne nuit
Bonjour,
J'ai un peu avancé depuis ces 3heures de nuit blanche,
Je suis entrain d'essayer de remplir un calendrier (mois jour)
Faute de mieux j'ai fais comme ceci
Private Sub cb_jour_Click()
Dim j As Integer
Me.cb_jour.Clear
For j = 1 To 31
Sheets("lancement").cb_jour.AddItem j
Next j
End Sub
Le problème c'est que je n'arrive pas à faire de selection (et la garder au lieu d'avoir une case blanche) ....
Si c'est pas une bonne méthode n'hésitez pas ... je me ferais un plaisir de recommencer.
Merci
J'ai un peu avancé depuis ces 3heures de nuit blanche,
Je suis entrain d'essayer de remplir un calendrier (mois jour)
Faute de mieux j'ai fais comme ceci
Private Sub cb_jour_Click()
Dim j As Integer
Me.cb_jour.Clear
For j = 1 To 31
Sheets("lancement").cb_jour.AddItem j
Next j
End Sub
Le problème c'est que je n'arrive pas à faire de selection (et la garder au lieu d'avoir une case blanche) ....
Si c'est pas une bonne méthode n'hésitez pas ... je me ferais un plaisir de recommencer.
Merci
cousinhub29
Messages postés
881
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 avril 2024
333
5 sept. 2010 à 06:33
5 sept. 2010 à 06:33
Re-,
C'est un combobox? (je suppose, vu le nom "cb_jour")
tout d'abord, quelle version d'excel as-tu?
Il existe des calendriers tout fait, que ce soit des objets ActiveX, ou d'autres, qu'on peut trouver sur plusieurs sites....
Je te conseille d'ailleurs de fréquenter assidûment ce site :
http://boisgontierjacques.free.fr/
Tu y trouveras une mine d'or...
Notamment un calendrier dans la rubrique "Formulaire et classes", le fichier en téléchargement "ObjetsClassesSynthèse", dans les 2 derniers onglets...
Bon courage
C'est un combobox? (je suppose, vu le nom "cb_jour")
tout d'abord, quelle version d'excel as-tu?
Il existe des calendriers tout fait, que ce soit des objets ActiveX, ou d'autres, qu'on peut trouver sur plusieurs sites....
Je te conseille d'ailleurs de fréquenter assidûment ce site :
http://boisgontierjacques.free.fr/
Tu y trouveras une mine d'or...
Notamment un calendrier dans la rubrique "Formulaire et classes", le fichier en téléchargement "ObjetsClassesSynthèse", dans les 2 derniers onglets...
Bon courage
Re,
Merci pour ton aide,
J'ai excel2007,
Concernant le calendrier que tu m'as fournit, je n'y comprends pas grand chose, je n'arrive pas à dégager l'action de chaque variable/fonction.
Je suis entrain d'en chercher un plus facile, ou j'essaierais d'en faire un "mal" mais à ma façon.
Deuxième point : comment faire pour "sélectionner" un item dans une listbox ?
C'est a dire que j'ai créais une combobox avec 31valeurs en liste déroulante.. mais j'arrive pas à faire afficher dans la combobox ma selection. Comment faire?
Merci
Merci pour ton aide,
J'ai excel2007,
Concernant le calendrier que tu m'as fournit, je n'y comprends pas grand chose, je n'arrive pas à dégager l'action de chaque variable/fonction.
Je suis entrain d'en chercher un plus facile, ou j'essaierais d'en faire un "mal" mais à ma façon.
Deuxième point : comment faire pour "sélectionner" un item dans une listbox ?
C'est a dire que j'ai créais une combobox avec 31valeurs en liste déroulante.. mais j'arrive pas à faire afficher dans la combobox ma selection. Comment faire?
Merci
Bonjour,
J'ai pas mal avancé depuis ( merci encore cousinhub29), j'ai intégré toutes mes listbox (avec leur contrôle), j'ai intégré les calendriers , et tout les bouttons qui vont avec..
J'ai maintenant un problème nouveau,
J'ai une base de données au travail (avec phpmadmin), j'ai une requête qui me permet d'avoir une liste de personne, avec leurs temps de travail...
Comment faire pour faire le lien VBA-->Phpmyadmin ?
Pour que ces données soit "copiées" dans une pages Vba et que je puisse travailler avec...
Merci beaucoup
J'ai pas mal avancé depuis ( merci encore cousinhub29), j'ai intégré toutes mes listbox (avec leur contrôle), j'ai intégré les calendriers , et tout les bouttons qui vont avec..
J'ai maintenant un problème nouveau,
J'ai une base de données au travail (avec phpmadmin), j'ai une requête qui me permet d'avoir une liste de personne, avec leurs temps de travail...
Comment faire pour faire le lien VBA-->Phpmyadmin ?
Pour que ces données soit "copiées" dans une pages Vba et que je puisse travailler avec...
Merci beaucoup
Bonjour,
Merci pour ta réponse polux,
J'y arrive pas , de plus on me dit (des collègues) que la connexion VB et la connexion VBA n'est pas la même ....
Sinon au niveau de la réflexion, comment dois-je m'y prendre à votre avis( j'essaierais de bricoler de cette façon)
Dois-je importer ou me connecter sur la base mysql( à travers phpmyadmin).
Merci encore
Merci pour ta réponse polux,
J'y arrive pas , de plus on me dit (des collègues) que la connexion VB et la connexion VBA n'est pas la même ....
Sinon au niveau de la réflexion, comment dois-je m'y prendre à votre avis( j'essaierais de bricoler de cette façon)
Dois-je importer ou me connecter sur la base mysql( à travers phpmyadmin).
Merci encore
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
20 sept. 2010 à 11:06
20 sept. 2010 à 11:06
Bonjour,
la connexion VB et la connexion VBA n'est pas la même .... ???
Je ne vois pas pourquoi. C'est une API qui est utilisée. Que ce soit en VB ou VBA ou autre langage, c'est prévu pour que ça fonctionne.
la connexion VB et la connexion VBA n'est pas la même .... ???
Je ne vois pas pourquoi. C'est une API qui est utilisée. Que ce soit en VB ou VBA ou autre langage, c'est prévu pour que ça fonctionne.
Bonsoir,
Merci pour ta réponse
Alors j'ai un probleme c'est que je ne peux rien installer de plus sur mon PC ( je n'y suis pas admin, et trop de restriction du fait de l'endroit où je travaille)
On me demande d'utiliser le pilote ODBC MYSQL 3.51 déjà installer.
J'ai ma base Phpmyadmin de prête
Tout mes boutons, calendrier tout de prêt
Il me manque juste la connexion que j'arrive décidement à faire ... :(
Merci pour ta réponse
Alors j'ai un probleme c'est que je ne peux rien installer de plus sur mon PC ( je n'y suis pas admin, et trop de restriction du fait de l'endroit où je travaille)
On me demande d'utiliser le pilote ODBC MYSQL 3.51 déjà installer.
J'ai ma base Phpmyadmin de prête
Tout mes boutons, calendrier tout de prêt
Il me manque juste la connexion que j'arrive décidement à faire ... :(
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
21 sept. 2010 à 11:02
21 sept. 2010 à 11:02
Bonjour,
Regarde ici : http://operatingsystem.free.fr/devel/detailtuto.php?idt=3
C'est assez bien détaillé et facile à mettre en oeuvre.
Bien que cela soit pour du VB6, ça fonctionne aussi en VBA, pour peu que l'on déclare les références indiquées.
;o)
Regarde ici : http://operatingsystem.free.fr/devel/detailtuto.php?idt=3
C'est assez bien détaillé et facile à mettre en oeuvre.
Bien que cela soit pour du VB6, ça fonctionne aussi en VBA, pour peu que l'on déclare les références indiquées.
;o)
Mercii beaucoup Polux
Je me suis vraiment amélioré en VBA
La connexion est établie,le requetage, l'update tout se passe bien.
Hormis Un dernier problème
J'ai voulu faire évoluer ma Macro,
en effet, j'ai voulu intégré dans ma variable Recordset
Un liste de personne selectionné par l'utilisateur et qui s'integre automatiquement dans cette requete... ça permet de d'aller chercher des données spécifiques,
Le problème étant, est que en faisant cela,ma requète devient excessivement longue et je vois que VBA me la coupe à un certain chiffre (environ 150 caractères)
Comment passer outre cette restriction de longueur ?
Ps: si quelqu'un a des questions concernant les connexions, qu'il n'hésite pas, j'ai fais un "algo" de la requête.
Je me suis vraiment amélioré en VBA
La connexion est établie,le requetage, l'update tout se passe bien.
Hormis Un dernier problème
J'ai voulu faire évoluer ma Macro,
en effet, j'ai voulu intégré dans ma variable Recordset
Un liste de personne selectionné par l'utilisateur et qui s'integre automatiquement dans cette requete... ça permet de d'aller chercher des données spécifiques,
Le problème étant, est que en faisant cela,ma requète devient excessivement longue et je vois que VBA me la coupe à un certain chiffre (environ 150 caractères)
Comment passer outre cette restriction de longueur ?
Ps: si quelqu'un a des questions concernant les connexions, qu'il n'hésite pas, j'ai fais un "algo" de la requête.
J'ai trouvé la réponse
En fait ce n'est pas le "recordset" qui coupe la chaine, en effet vba enregistre bien mes 300caracteres, il choisit juste de ne pas tout afficher (juste les 255premiers) ... donc pas de tracas, ma variable est bien enregistrée.
Voila au cas ou ça arrive à quelqu'un lors de ses manipulations VBA-SQL
ps : pour vous en assurer faites :
'Dim test
'test = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccddeeffgghhiikkllmmnnoopp"
'test = Right(test, 10)
'counter = Len(test)
vous verrez qu'il affiche bien les dernieres lettres qui ne sont pas affichier pourtant la fenetre espion.
cordialement
En fait ce n'est pas le "recordset" qui coupe la chaine, en effet vba enregistre bien mes 300caracteres, il choisit juste de ne pas tout afficher (juste les 255premiers) ... donc pas de tracas, ma variable est bien enregistrée.
Voila au cas ou ça arrive à quelqu'un lors de ses manipulations VBA-SQL
ps : pour vous en assurer faites :
'Dim test
'test = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbccddeeffgghhiikkllmmnnoopp"
'test = Right(test, 10)
'counter = Len(test)
vous verrez qu'il affiche bien les dernieres lettres qui ne sont pas affichier pourtant la fenetre espion.
cordialement