IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transcrire macro en Vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    La question n'est pas de pouvoir transcrire une macro XL4 en vba mais d'expliquer ce que cette macro est censée faire.

  3. #3
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Pièces jointes en attente de validation

  4. #4
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. besoin d'aide pour macros ou VBA
    Par jmsor dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/02/2007, 18h41
  2. macro excel vba
    Par fildupa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/12/2006, 21h29
  3. Demarrer une Macro/Appli VBA sans paser par les feruilles Excel
    Par size_one_1 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/12/2006, 21h23
  4. execute une macro via vba sous access
    Par nes dans le forum Access
    Réponses: 4
    Dernier message: 28/03/2006, 23h15
  5. Réaliser une macro en VBA pour excel afin de créer un graphe
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo