Re: Activer des macro avec une combobox. | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 02-01-2008 18h41
Ok, merci de ton retour.
Je m'occupe de mettre [résolu] sur ce fil. Pour info, lorsque tu crées un post ou que tu l'édites, tu peux préfixer le fil grâce à la liste déroulante comme ci-dessous : (clic pour agrandir l'image) Nb : le choix [non résolu] sert à remettre en cause un fil clos précédemment à tort Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Activer des macro avec une combobox. | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 02-01-2008 18h22
Re,
Heu... comme je me suis absenté, j'ai dû rater quelque chose... et je n'ai pas tout compris dans l'échange. PowerPlus, merci de revenir pour dire si tu as trouvé réponse à ta question et de préfixer ce fil à [résolu] si c'est le cas STP. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Récupérer latitude et longitude dans mon code vba | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 02-01-2008 16h05
Bonjour marioexcel, JCGL,
Comme je le précise dans l'article Cartographie et Localisation Géographique, il s'agit là d'une introduction au sujet, destinée aux plus férus des passionnés que nous sommes et qui n'ont pas peur de se plonger dans les méandres du html et javascripts, le tout associé à VBA. N'étant pas moi-même spécialiste dans ces langages, j'ai pas mal galéré avant de pouvoir mettre en oeuvre ce qui est détaillé dans cet article ou même l'application mDF XLmap et le travail est loin d'être terminé pour approfondir le sujet... marioexcel, tu t'attaques là à un projet vaste et relativement compliqué, et je t'en félicite, mais je me vois mal assurer un support comme je le fais volontier pour du pure VBA qui reste bien plus à ma portée. A mon avis, la base de ton travail et tout ce qu'il faut pour parvenir à tes fins se trouve dans ces liens : The Virtual Earth Interactive SDK et Virtual Earth Map Control 6.0 de la MSDN Library. Pour info, les coordonnées Latitude/Longitude sont récupérables notamment grâce à la méthode Javascript GetCenter() du contrôle de carte. Dans mDF XLmap, pour récupérer les coordonnées Lat/Long lors du simple clic sur la carte, j'ai dû utilisé une astuce assez alambiquée, dont le principe est le suivant : [list=1] [*]Ajout d'un évènement OnClick au contrôle de carte (méthode AttachEvent) [*]Ajout d'un objet <INPUT> de type Hidden qui va récupérer les coordonnées de la souris sur la page web (converties ensuite en Lat/long par la méthode PixelToLatLong du contrôle de carte). [*]Cet objet <INPUT> crée ensuite son propre évènement OnClick qui est finalement récupéré par VBA grâce à la déclaration d'un objet gérant cet évènement (utilisation du mot clé WithEvents dans la déclaration VBA) [/list] Comme tu peux le voir, l'interaction entre VBA et la page html du contrôle de carte n'est pas très simple à gérer et demande une certaine maitrise VBA mais aussi une bonne connaissance des propriétés et méthodes liées au contrôle de carte (et beaucoup de tests !). Cordialement,
Edité par myDearFriend! le 02/01/2008 20:15:11
Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Activer des macro avec une combobox. | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 02-01-2008 14h06
Bonjour PowerPlus,
VBA te permet de faire ça de plusieurs façons. Dans l'exemple que tu trouveras en pièce jointe, voici à mon avis la plus simple et la plus "académique" des mises en oeuvre. Soit un objet activeX ComboBox dans la feuille de calcul Feuil1, j'ai utilisé ensuite le code suivant : DANS LE MODULE DE CODE DE LA FEUIL1 :
Private Sub ComboBox1_Change()
DANS UN MODULE DE CODE STANDARD (ex : Module1) :
Sub rose()
[list] [*]Lorsque l'utilisateur sélectionne un élément dans la ComboBox, cela déclenche l'évènement Change() correspondant. [*]Dans cet évènement Change(), j'utilise une instruction de bloc Select Case...End Select qui va tester la valeur de l'élément choisi et lancer simplement la macro associée du Module1. [/list] Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Problème de copie de mise en forme | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 01-01-2008 21h43
Bonsoir PowerPlus, le Forum,
Les boucles sont des éléments essentiels en VBA. Elles permettent de répéter à volonté un bloc d'instructions particulières définies par le développeur, optimisent ainsi les traitements et ajoutent à la puissance du langage VBA. Il existe 3 types de boucle qu'il me paraît indispensable de connaître en VBA : [list=1] [*]La boucle de type Do...Loop : permet d'exécuter un bloc d'instructions un nombre de fois indéfini, tant qu'une condition a la valeur True ou jusqu'à ce qu'elle prenne la valeur True (aide VBA). Couplée aux mots clés While ou Until, le nombre d'itérations ou de passage de boucle en est facilité. [*]La boucle de type For...Next : utilisation d'un compteur pour exécuter des instructions un certain nombre de fois (aide VBA). Très utile notamment pour manipuler les références de cellules selon leur index de colonne ou de ligne. [*]La boucle de type For Each...Next : répète un bloc d'instructions pour chaque objet d'une collection ou pour chaque élément d'un tableau (aide VBA). C'est de ce type de boucle dont je me suis servi dans mon précédent post : cette boucle parcourt chaque élément de l'Array() regroupant les noms de feuilles et applique ainsi le traitement pour chacune.[/list] Je te recommande la lecture de l'aide VBA concernant ces 3 types de boucle. Tu devrais aisément en comprendre les principes en observant les exemples présentés dans cette aide et en réalisant quelques tests. Pour info, il existe également le bloc d'instrucion While...Wend, un peu similaire à la boucle de type Do...Loop mais vraisemblablement moins utilisé. Je me permets de préfixer ce fil de discussion en [résolu], mais n'hésite pas à revenir en créant un nouveau sujet, si tu as besoin de plus d'éclaircissement sur ce sujet à l'appui d'un exemple. Bonne année à toi et à celles et ceux qui liront ce fil. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Problème de copie de mise en forme | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 31-12-2007 18h41
Re PowerPlus,
Vite fait avant de partir réveillonner... Visiblement, tu n'as pas compris ce que j'essayais d'expliquer dans ce post à propos des sélections d'objets (cellules, feuilles ou autres) inutiles en VBA... Par ailleurs, à mon avis, il n'est pas possible d'obtenir "d'un coup", un PasteSpecial/Format sur plusieurs feuilles de calcul en simultané. Pour répondre à ton problème, je te propose le code suivant (utilisant une boucle sur les feuilles) :
Private Sub CommandButton15_Click()
Bonne et heureuse année à toutes et tous! Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Aide sur la compatibilité | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 31-12-2007 15h21
Re,
Normalement, tu devrais pouvoir faire comme ça :
Sheets("Graphique").Columns("k:L").PasteSpecial Paste:=xlPasteValues
Comme dans cet exemple :
Sheets("Feuil1").Columns("k:L").Copy
D'une manière générale, les sélections de cellules sont souvent inutiles (voire déconseillées et sources de problème) en VBA. Par ailleurs PowerPlus, merci à toi de créer un nouveau sujet dans le forum si la question posée n'a pas de rapport avec la précédente. De plus, je déplace le présent fil de discussions dans le forum Espace Débutants (VBA) si tu n'y vois pas d'inconvénient. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Aide sur la compatibilité | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 31-12-2007 14h11
Re,
Si les membres de ce site complètent leur profil (comme nous l'avons fait tout les deux), tu peux voir la(les) version(s) Excel qu'ils utilisent ci-contre : Effectivement PowerPlus, j'ai bien fait le test sous XL 2003. Citation : PowerPlus a dit : Pas de problème PowerPlus. De toutes façons je ne juge pas, chacun fait comme il l'entend pour peu qu'il s'agisse d'un travail personnel. Je donnais simplement mon avis même si certains freewares que j'ai pu voir sur le net mériteraient bien récompense (alors que d'autres circulant en tant que sharewares ne valent rien du tout). Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Aide sur la compatibilité | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 31-12-2007 13h30
Bonjour PowerPlus, le Forum,
Je te rassure, ta procédure Workbook_Open() située dans ThisWorbook se lance bien à l'ouverture du classeur (à condition que l'utilisateur active bien les macros à l'ouverture du classeur ) Tout d'abord, un avis personnel : les classeurs verrouillés (avec ou sans période d'essai), je n'y crois pas. N'importe quel utilisateur un peu averti saura contourner le verrouillage de toutes façons. D'ailleurs, tu en as l'aperçu ici, si l'utilisateur n'active pas les macros à l'ouverture du classeur, ton code ne sert plus à rien... Par ailleurs, je ne suis pas trop fan non plus des applications avec période d'essai et paiement ensuite... Concernant ton code VBA maintenant, juste quelques remarques pour l'instant (que j'espère constructives) et se limitant à la syntaxe utilisée :[list=1] [*]Procédure Workbook_Open : Tu devrais échanger l'expression
Application.Run "test"
Test
L'unique nom de ta macro suffit à appeler cette dernière. [*]Procédure CommandButton1_Click : Plutôt que
Range("secur!B11").Value
Sheets("secur").Range("B11").Value
Workbooks("NomDuClasseur").Sheets("NomDeLaFeuille").Range("ReferenceDeCellule") [*]Procédure TextBox1_Change : L'expression [secur!B11] équivaut à Sheets("secur").Range("F11"). Même si c'est plus court, je te conseillerais d'utiliser la seconde façon de l'exprimer. Utiliser les crochets [] revient à utiliser la méthode evaluate() qui force donc Excel à évaluer l'expression comprise entre crochets et qui, à mon avis, utilisé sans mesure, peut ralentir une application VBA (c'est un avis tout à fait personnel). Par ailleurs, pourquoi utiliser tantôt une méthode et tantôt une autre dans un même projet ? [*]Procédure Test : La ligne de code :
Dim nombre As Integer
[/list] Voilà, j'espère que ces quelques points te seront utiles. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: CALCUL DE DATE | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 27-12-2007 03h18
Bonsoir cancoille,
OK, c'est entendu. Il serait simplement souhaitable à l'avenir que tu informes tes interlocuteurs de l'existence d'un sujet similaire ailleurs. N'en parlons plus. Merci de ton retour en tout cas. Bonnes fêtes de fin d'année. Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|