Forums XLPages

Tous les messages (myDearFriend!)

« 1 ... 134 135 136 137 138 139 140 ... 149 »
Re: Activer des macro avec une combobox.
Webmestre

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)
Image redimensionnée
Nb : le choix [non résolu] sert à remettre en cause un fil clos précédemment à tort

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Activer des macro avec une combobox.
Webmestre

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
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Récupérer latitude et longitude dans mon code vba
Webmestre

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
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Activer des macro avec une combobox.
Webmestre

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()
    
Select Case ComboBox1.Text
    
Case "rose"
        
rose
    
Case "vert"
        
vert
    
Case "noir"
        
noir
    
Case "rouge"
        
rouge
    End Select
End Sub

DANS UN MODULE DE CODE STANDARD (ex : Module1) :
Sub rose()
    
MsgBox "La macro 'rose' est lancée"
End Sub

Sub vert
()
    
MsgBox "La macro 'vert' est lancée"
End Sub

Sub noir
()
    
MsgBox "La macro 'noir' est lancée"
End Sub

Sub rouge
()
    
MsgBox "La macro 'rouge' est lancée"
End Sub


[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,
Pièce jointe:
zip PourPowerPlus.zip   [ Taille: 9.49 Ko - Téléchargements: 776 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Problème de copie de mise en forme
Webmestre

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
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Problème de copie de mise en forme
Webmestre

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()
Dim F As Worksheet
    Sheets
("look").Range("U2:AK33").Copy
    
For Each F In Sheets(Array("Vcoef 6_1""Vcoef 6_2""Vcoef 6_3""Vcoef 5_1""Vcoef 5_2""Vcoef 5_3""Vcoef 4_1""Vcoef 4_2""Vcoef 4_3""Vcoef 3_1""Vcoef 3_2""Vcoef 3_3"))
        
F.Range("B2:R33").PasteSpecial Paste:=xlPasteFormats
    Next F
End Sub


Bonne et heureuse année à toutes et tous!

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Aide sur la compatibilité
Webmestre

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
Sheets
("Graphique").Columns("k:L").PasteSpecial Paste:=xlPasteValues


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.

Image redimensionnée


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
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Aide sur la compatibilité
Webmestre

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 :
Image redimensionnée

Effectivement PowerPlus, j'ai bien fait le test sous XL 2003.

Citation :
PowerPlus a dit :
Enfin ne vous inquiétes pas je ne ferai rien payer. C'est juste un entrainement pour trouver d'autre application par la suite.

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
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Aide sur la compatibilité
Webmestre

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"
par
Test
(on peut aussi utiliser l'instruction Call mais c'est inutile ici).
L'unique nom de ta macro suffit à appeler cette dernière.

[*]Procédure CommandButton1_Click :
Plutôt que
Range("secur!B11").Value
j'utiliserais
Sheets("secur").Range("B11").Value
Pour faire référence à une cellule (ou une plage de cellules) d'une feuille de calcul particulière, on cible l'objet par une expression comme : Sheets("NomDeLaFeuille").Range("ReferenceDeCellule"). On respecte ainsi la hiérarchie des objets. De même, si on veut cibler une plage dans un autre classeur, on fera :
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
devrait se trouver juste après la ligne Sub Test(). Les déclarations de variable se font toujours en début de procédure, jamais en plein milieu.
[/list]
Voilà, j'espère que ces quelques points te seront utiles.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: CALCUL DE DATE
Webmestre

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
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

« 1 ... 134 135 136 137 138 139 140 ... 149 »