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 :

Première macro 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
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut Première macro VBA
    Bonjour,

    Suite à des changements structurels dans mon organisation, je m'occupe à présent de programmer les macro pour le service RH.

    N'en ayant jamais fait, j'ai téléchargé sur ce site le cours de M. Rabilloud que je commence à lire à l'instant. Le soucis est le suivant : je dois analyser une macro pour la fin de la semaine prochaine!

    Après une première analyse, il y a pas mal d'éléments que je ne comprend pas. Est-ce que quelqu'un pourrait me traduire cela en français? ;-)
    Les éléments non compris sont soulignés en jaune.

    Merci!!!!!
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Je ne sais pas si tire ton code d'un cours mais il faudra changer de professeur

    je t'ai traduit une partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Workbooks.Open Filename:= _
        "J:\HR.DEP "  ‘tu ouvres un fichier nommé HR.DEP situé dans “J” mais je me trompe peut-être car on doit donner le nom avec son extension, en conséquence, j’imagine que « HR » peut être un userform et « DEP » un objet quelconque (textbox, listbox, combobox…) représentant le nom complet du fichier, exemple « dep.xls »
    ci-dessous tu protèges les les feuilles désirées ("Formulaire ", "Annexe") avec passeport et possibilité d’agir sur les cellules protégées =(UserInterfaceonly:=True)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Worksheets("Formulaire ").Protect UserInterfaceonly:=True, Password:="fred"
        Worksheets("Annexe").Protect UserInterfaceonly:=True, Password:="fred"
    ci-dessous tu vas dans le classeur ("form.xls") en enlevant le mot de passe de la feuille affichée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Windows("form.xls").Activate
        ActiveSheet.Unprotect Password:="fred"
    ci-dessous tu vas dans le classeur ("Tableau.xls") et selectionnes A3 de la feuille active pour la copier dans le classeur « form.xls » en cellule D4, perso j’aurai écrit autrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Windows("Tableau.xls").Activate
        Range("A3").Select
        Selection.Copy
        Windows("form.xls").Activate
        Range("D4").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Ma version :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbook("form.xls").Range("D4”) = Workbook("Tableau.xls").Range("A3")
    Meme principe ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Windows("Tableau.xls").Activate
        Range("B3").Select
        Application.CutCopyMode = False ‘désactive le mode copy
        Selection.Copy
        Windows("form.xls").Activate
        Range("D6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    La encore, j’aurais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbook("form.xls").Range("D6”) = Workbook("Tableau.xls").Range("B3")
    Meme principe pour le reste jusque l’appel à la feuille « annexe »
    Et tout ce code peut être largement réduit, en evitant avant tout les «select»

    Suite au prochain numéro…
    bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut
    Un tout grand merci!!! C plus simple avec les explications ;-)

    C un collègue qui a créé la macro!

    A bientôt

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    re,

    une idée pour raccourcir un peu
    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
    OPTION BASE 1 
     
    Sub Mac1()
    '
    ' Mac1 Macro
    ' Macro recorded 8/12/2004 by PCXX
    '
     
    ' CREATION DES FICHES
    Dim nom_fich As String, nom_serv As String, x as integer
    Dim initiales As String, tbform as variant, tbtableau as variant
     
    ' pour faire le loop, effacer le ' devant DO et en fin de macro
    '    Do
    nom_fich = ActiveCell.Offset(0, 1).Value
    nom_serv = ActiveCell.Offset(0, 7).Value
    Workbooks.Open Filename:=  "J:\HR.DEP "
    Worksheets("Formulaire ").Protect UserInterfaceonly:=True, Password:="fred"
    Worksheets("Annexe ").Protect UserInterfaceonly:=True, Password:="fred"
    Workbooks("form.xls ").Unprotect Password:="fred"
    With Workbooks("form.xls").sheets(“nomdetafeuille”)
       Tbform = array(.Range("D4”).address, .Range("D6”).address, .Range("D8").address, _
       .Range("I4”).address, .Range("I6”).address, .Range("I8”).address, .Range("I10”).address)
    End with
    With Workbooks("Tableau.xls").sheets(“nomdetafeuille”)
       Tbtableau = array(.Range("A3”).address, .Range("B3”).address, .Range("C3”).address, _
       .Range("D3”).address, .Range("E3”).address, .Range("H3”).address, .Range("G3”).address)
    End with
    For x = 1 to ubound(tbform)
       With Workbooks("form.xls").sheets(“nomdetafeuille”)
          .Range(Tbform(x)) = Workbook("Tableau.xls").sheets(“nomdetafeuille”).range(tbtableau(x))
       end with
    Next x
     Sheets("Annexe").Unprotect Password:="fred"
    ……
    Adapter de la meme façon pour la suite
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Ton application te sert à gérer quels types de données ?
    En clair, que fais-tu avec ton application.

    Merci

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 121
    Par défaut
    Citation Envoyé par casefayere Voir le message
    [...]
    Codes:
    [...]‘tu ouvres un fichier nommé HR.DEP situé dans “J” mais je me trompe peut-être car on doit donner le nom avec son extension, en conséquence, j’imagine que « HR » peut être un userform et « DEP » un objet quelconque (textbox, listbox, combobox…) représentant le nom complet du fichier, exemple « dep.xls »[/code]
    Non je pense que tu as bien interpreté, si cela avait ete un formulaire il aurait eu
    Mais c'est vrai que l’écriture est bizarre
    @fredcol: La macro était fonctionnelle quand tu as récupéré le projet?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut
    La macro était fonctionnelle quand je l'ai récupéré. J'ai juste raccourci le nom des fichiers et changé les mots de passe. Il est juste que j'ai fait une erreur en raccourcissant ceci "J:\HR.DEP... (Normalement cette ligne de code finaissait par le nom du fichier puis .xls => form.xls).
    Sinon tout le reste est à l'identique.

    Sa fonction : a partir d'un fichier excel reprenant un ensemble de données sur le personnel, la macro envoie pour chaque personne du fichier les informations la concernant sur une feuille d'évaluation (les données sont extraites de SAP)
    J'ai donc autant de feuilles d'évaluation que de membres du personnel.

    Et hop, j'me rplonge dans mon cours! (bien besoin!)
    Merci à tous!

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonjour NEC14, Qwazerty, re le forum,
    je penses que la personne qui a préparé son code a été trop vite car je suis persuadé qu'il y a même des erreur dans les affectations de valeur, mais laissons venir la suite....

    bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. première macro vba
    Par faruedde dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 18/08/2008, 10h41
  2. Connaître la taille d'un module avec une macro VBA ou autre
    Par beegees dans le forum Général VBA
    Réponses: 15
    Dernier message: 22/11/2005, 09h47
  3. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 10h51
  4. Macro VBA sur Access
    Par beurnoir dans le forum Access
    Réponses: 3
    Dernier message: 12/10/2005, 16h46
  5. [SQL][MACRO VBA]Pb de syntaxe
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/08/2004, 09h11

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