aide débutant en VBA

  • Initiateur de la discussion Initiateur de la discussion nanar4944
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nanar4944

Guest
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.

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:\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)
 
Re : aide débutant en VBA

Bonsoir

Ce serait plus simple de t'aider avec le fichier Excel devant les oreilles.
Sinon un début de traduction
Code:
NBLIN=53
LIN=7
COL=COLONNE(SELECTION())
=POUR("CPTE";1;NBLIN;4)
=ECRAN(FAUX)
devient
Code:
Dim NBLIN as Long, LIN as Long, CPTE as Long
NBLIN=53
LIN=7
For CPTE=1 To 4 'sauf erreur de ma part
Application.ScreenUpDating=False
FICH=Application.ExecuteExcel4Macro("GET.DOCUMENT(1)")
 
Dernière édition:
Re : aide débutant en VBA

merci pour la réponse

mais moi je traduis =pour("CPTE";1;NBLIN;4)
par FOR CPTE = 1 TO NBLIN step 4

et apparemment cette instruction marche.

ce qui me gêne le plus c'est la suite.

J'ai essayé les commandes suivantes mais ça ce marche pas excepté le Workbooks.Open "C:\VCS_1\EDITDIM.XLS"
qui marche très bien contrairement à Application.ExecuteExcel4Macro "open(""C:\VCS_1\EDITDIM.XLS"")"
qui lui ne marche pas.

FICH = Application.ExecuteExcel4Macro("Get.Document(1)")

Code:
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)"
 
Re : aide débutant en VBA

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.


Code:
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:\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

Re : aide débutant en VBA

Bonsoir

Tu permets que j'aille bosser entre mes moments de loisirs sur xld ? 😉

Je viens juste de rentrer du taf, je regarde tes fichiers d'ici peu.


PS: Les autres membres du forum quant à eux ont aussi leur propre planning 😉

EDITION: Pourquoi ne pas avoir joint les fichiers avec les feuilles macro XL4 incorporées ??
 
Dernière édition:
Re : aide débutant en VBA

Salut Staple1600

Ma relance n'était pas du tout vindicative.

Par contre je ne comprends pas le sens de ton "EDITION".

J'ai joint les fichiers avec lesquels LA macro travaille et le début de la macro pour 1 parcours seulement parce qu'après c'est le même raisonnement avec les trois autres parcours.

Je ne comprends pas ce que tu veux dire avec "les feuilles macro XL4 incorporées".
 
Re : aide débutant en VBA

Re

Il faut savoir que j'ai un humour particulier.

Mon édition je l'ai faite après avoir ouvert tes fichiers, et je n'y vois pas tes macros XL4
(Et les macros XL4 sont normalement stockées dans des feuilles macro XL4, et sauf erreur de ma part je n'en vois pas dans tes PJ)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour