Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 19h42   #1
Invité de passage
 
Homme bernard
retraité
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme bernard
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : retraité
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
Par défaut Transcrire macro en Vba

Bonjour.

pour des raisons de fonctionnement sous Excel 2010 Je voudrais transformer une Macro XL4 en langage VBA.

J'ai essayé de me plonger dedans avec quelques bouquins mais ce n'est pas évident.

Si une âme charitable pouvait me transcrire en VBA le début de cette Macro ça m'aiderait un peu à comprendre.

Merci d'avance. voici le début de cette Macro.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Edition d'un Groupe du Dimanche - 4 dates / page
 Selectionner les noms de fichier
 
NBLIN=53
 LIN=7
 COL=COLONNE(SELECTION())
 
=POUR("CPTE";1;NBLIN;4)
 
=ECRAN(FAUX)
 
FICH=LIRE.DOCUMENT(1)
 =POSER.NOM("DATE1";FICH&"!L"&LIN+CPTE-1&"C5")
 =POSER.NOM("DATE2";FICH&"!L"&LIN+CPTE-1+1&"C5")
 =POSER.NOM("DATE3";FICH&"!L"&LIN+CPTE-1+2&"C5")
 =POSER.NOM("DATE4";FICH&"!L"&LIN+CPTE-1+3&"C5")
 
=OUVRIR("C:\VCS_1\EDITDIM.XLS")
 =FORMULE(CELLULE("contenu";REFTEXTE(DATE1));'C:\VC S_1\[EDITDIM.XLS]EDITDIM'!L2C2)
 =FORMULE(CELLULE("contenu";REFTEXTE(DATE2));'C:\VC S_1\[EDITDIM.XLS]EDITDIM'!L2C9)
 =FORMULE(CELLULE("contenu";REFTEXTE(DATE3));'C:\VC S_1\[EDITDIM.XLS]EDITDIM'!L23C2)
 =FORMULE(CELLULE("contenu";REFTEXTE(DATE4));'C:\VC S_1\[EDITDIM.XLS]EDITDIM'!L23C9)
nanar4944 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 19h55   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
La question n'est pas de pouvoir transcrire une macro XL4 en vba mais d'expliquer ce que cette macro est censée faire.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/01/2012, 21h07   #3
Invité de passage
 
Homme bernard
retraité
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme bernard
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : retraité
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
Je vais essayer d'expliquer.

Le but est d'après un calendrier de parcours( pour Neuf groupes différents et tous les dimanches de l'année) nommé "parcours_2012_1GR_4DAT" de remplir une feuille A4 (appelée "EDITDIM") avec 4 parcours de quatre dimanches à
suivre pour le même groupe.

exemple pour la 1° feuille on met les parcours du 1° , 8 , 15 , et 22 Janvier.

A chaque nom de parcours du calendrier est associé un fichier qui contient
différentes infos:

le circuit en zone texte(Texte 7)
la distance
le dénivelé
le repère (nom du parcours)

On met en page ces informations dans "EDITDIM" pour chacun des 4 circuits.

Du calendrier on récupère:

la date(Colonne 5)
le N° du groupe(L1 et colonne sélectionnée)
les sages du groupe (L2 et colonne sélectionnée)

On met aussi ces infos dans "EDITDIM" pour chacun des 4 circuits.

Puis on enregistre le fichier "EDITDIM" sous un autre nom.

On Sélectionne le 1° parcours du calendrier pour le groupe souhaité

par exemple L7C7 pour le groupe 9 et on lance la Macro.

Je remets la Macro (pour un des 4 circuits par feuille) pour faciliter la compréhension. Et aussi les fichiers utilisés.


Edition d'un Groupe du Dimanche - 4 dates / page
Selectionner les noms de fichier

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
NBLIN=53
LIN=7
COL=COLONNE(SELECTION())
 
=POUR("CPTE";1;NBLIN;4)
 
=ECRAN(FAUX)
 
FICH=LIRE.DOCUMENT(1)
=POSER.NOM("DATE1";FICH&"!L"&LIN+CPTE-1&"C5")
=POSER.NOM("DATE2";FICH&"!L"&LIN+CPTE-1+1&"C5")
=POSER.NOM("DATE3";FICH&"!L"&LIN+CPTE-1+2&"C5")
=POSER.NOM("DATE4";FICH&"!L"&LIN+CPTE-1+3&"C5")
 
=OUVRIR("C:\VCS_1\EDITDIM.XLS")
=FORMULE(CELLULE("contenu";REFTEXTE(DATE1));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L2C2)
=FORMULE(CELLULE("contenu";REFTEXTE(DATE2));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L2C9)
=FORMULE(CELLULE("contenu";REFTEXTE(DATE3));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L23C2)
=FORMULE(CELLULE("contenu";REFTEXTE(DATE4));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L23C9)
 
Premier
 
TEST=FICH&"!L"&LIN+CPTE-1&"C"&COL-1
=SI(CELLULE("contenu";REFTEXTE(TEST))="";ATTEINDRE(L(46)C);)
 
GRP=FICH&"!L1C"&COL
=FORMULE(CELLULE("contenu";REFTEXTE(GRP));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L2C4)
=SI(COL<>3;ATTEINDRE(L(3)C);)
SAG=FICH&"!L"&LIN+CPTE-1&"C1"
=ATTEINDRE(L(2)C)
SAG=FICH&"!L2C"&COL
=FORMULE(CELLULE("contenu";REFTEXTE(SAG));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L18C2)
 
CIRCUIT=CELLULE("contenu";REFTEXTE(FICH&"!L"&LIN+CPTE-1&"C"&COL))
CIRC="C:\VCS_1\PARCOURS\"&CIRCUIT&".XLS"
 
=OUVRIR(CIRC)
=SELECTIONNER("Texte 7")
=COPIER()
=ACTIVER("EDITDIM.XLS")
=SELECTIONNER("L3C1")
=COLLER()
 
Distance
=ACTIVER(CIRCUIT&".XLS";)
=SELECTIONNER("L2C5")
=COPIER()
=ACTIVER("EDITDIM.XLS")
=SELECTIONNER("L2C5")
=COLLER()
 
Dénivelée
=ACTIVER(CIRCUIT&".XLS";)
=SELECTIONNER("L18C3")
=COPIER()
=ACTIVER("EDITDIM.XLS")
=SELECTIONNER("L18C4")
=COLLER()
 
Repère
=ACTIVER(CIRCUIT&".XLS";)
=SELECTIONNER("L18C5")
=COPIER()
=FERMER(FAUX)
=ACTIVER("EDITDIM.XLS")
=SELECTIONNER("L18C5")
=COLLER()
 
 
Deuxième
 
TEST=FICH&"!L"&LIN+CPTE-1+1&"C"&COL-1
=SI(CELLULE("contenu";REFTEXTE(TEST))="";ATTEINDRE(L(46)C);)
 
GRP=FICH&"!L1C"&COL
=FORMULE(CELLULE("contenu";REFTEXTE(GRP));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L2C11)
=SI(COL<>3;ATTEINDRE(L(3)C);)
SAG=FICH&"!L"&LIN+CPTE-1+1&"C1"
=ATTEINDRE(L(2)C)
SAG=FICH&"!L2C"&COL
=FORMULE(CELLULE("contenu";REFTEXTE(SAG));'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!L18C9)
 
CIRCUIT=CELLULE("contenu";REFTEXTE(FICH&"!L"&LIN+CPTE-1+1&"C"&COL))
=SI(CIRCUIT=0;ATTEINDRE(L218C1);)
CIRC="C:\VCS_1\PARCOURS\"&CIRCUIT&".XLS"
Pièces jointes en attente de validation
Type de fichier : xls 40V01BSE.xls
Type de fichier : xlsx Parcours2012_1GR_4DAT.xlsx
Type de fichier : xls EDITDIM.XLS
nanar4944 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 18h10   #4
Invité de passage
 
Homme bernard
retraité
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme bernard
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : retraité
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
BONJOUR

Je relance le post suite aux nouvelles informations que j'ai fourni.

Peut être un début de réponse pour me mettre le pied à l'étrier.

J'ai trouvé quelques trucs mais je ne vois pas comment trouver l'équivalent de

FICH = LIRE.DOCUMENT(1)
de
=POSER.NOM
et de
=FORMULE

J'ai essayé un début de Macro VBA que je vous mets ci dessous
mais les instructions avec "Application.ExecuteExcel4Macro" ne fonctionnent pas.

J'ai rajouté DATE1 en variable pour voir si elle évoluait en pas à pas détaillé mais elle est toujours vide. Mais c'est peut ètre une erreur de ma part.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Option Explicit
 
Sub ESSAI_MACRO_VCS_1()
'
' ESSAI_MACRO_VCS Macro
Dim NBLIN
Dim LIN
Dim COL
Dim FICH
Dim CPTE
Dim GRP
Dim SAG
Dim CIRCUIT
Dim CIRC
Dim DATE1
 
 
 
NBLIN = 53
LIN = 7
COL = ActiveCell.EntireColumn.Select
For CPTE = 1 To 53 Step 4
FICH = Application.ExecuteExcel4Macro("Get.Document(1)")
 
Application.ExecuteExcel4Macro "Set.name(""DATE1"",FICH&""!R""&LIN+CPTE-1&""C5"")"
Application.ExecuteExcel4Macro "set.name(""DATE2"",FICH&""!R""&LIN+CPTE-1+1&""C5"")"
Application.ExecuteExcel4Macro "set.name(""DATE3"",FICH&""!R""&LIN+CPTE-1+2&""C5"")"
Application.ExecuteExcel4Macro "set.name(""DATE4"",FICH&""!R""&LIN+CPTE-1+3&""C5"")"
 
Workbooks.Open "C:\VCS_1\EDITDIM.XLS"
 
'Application.ExecuteExcel4Macro "open(""C:\VCS_1\EDITDIM.XLS"")"
 
 
Application.ExecuteExcel4Macro "Formula(CELLULE(""contenu"",REFTEXTE(DATE1)),'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!R2C2)"
Application.ExecuteExcel4Macro "Formula(CELLULE(""contenu"",REFTEXTE(DATE2)),'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!R2C9)"
Application.ExecuteExcel4Macro "Formula(CELLULE(""contenu"",REFTEXTE(DATE3)),'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!R23C2)"
Application.ExecuteExcel4Macro "Formula(CELLULE(""contenu"",REFTEXTE(DATE4)),'C:\VCS_1\[EDITDIM.XLS]EDITDIM'!R23C9)"
 
'ferme le fichier EDITDIM sans sauvegarde des modifs.
Workbooks("EDITDIM.XLS").Close savechanges:=False
 
Next
 
 
'
 
'
End Sub
nanar4944 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h14.


 
 
 
 
Partenaires

Hébergement Web