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 :

Demande d'aide pour création de macro sur Excel


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
    Apprenti Amelioration continue
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti Amelioration continue
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Par défaut Demande d'aide pour création de macro sur Excel
    Bonjour,

    Je suis débutant sur VBA et j'aurai besoin d'aide pour la création d'une macro qui va automatiser une tâche.
    Je vous explique mon problème,je dois automatiser une tache de ce document :document test.xlsm

    En clair, il faudrait créer une macro permettant de dupliquer la feuille ERP vierge et de copier des éléments de la feuille Hall de débit stockage sur la nouvelle feuille dupliquée.

    étapes par étapes, nous avons ça :

    1) définir la variable i étant le numéro de lignes i=7 et max=163 au début

    2)Vérifier que la cellules Di ne soit pas vide si elle l'est i=i+1 sinon continuer le programme

    3)Dupliquer la feuille ERP Vierge et la renommer en texte de la cellules Ci

    4)Définir de nouvelle variable définie à partir des cellules :
    • ut=A1
    • r=Di
    • mp=Ei
    • C=Fi
    • m=Gi
    • H=Hi
    • org=Ii
    • occ=Ji
    • G=Ki
    • Eval=Li


    5) Sur la feuille nommer de la cellules Ci copier :
    • A1=ut
    • A3=r
    • C7=mp
    • D7=c
    • E7=m
    • F7=H
    • G7=org
    • H7=occ
    • I7=G
    • J7=Eval


    6)puis de revenir sur La feuille Hall de débit stockage de créer un lien Hypertexte sur la cellule Mi amenant vers la feuille créée auparavant

    7)Programme fini i=i+1 jusqu'à que i=max

    Je ne sais pas si j'ai été suffisamment clair si vous avez des questions je suis à votre disposition.

    Je cherche donc des tuto pour débutant pouvant m'aider à écrire le programme car je suis vraiment nul en VBA ou une âme charitable pouvant m'écrire le programme .

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    comme indiqué dans ses règles, ce forum n'a pas pour but d'écrire le programme à votre place !

    Voir en haut de cette page le bouton Tutoriels Excel puis la section Programmation

    Sans oublier le meilleur ami du débutant, l'Enregistreur de macro livrant sur un plateau une base de code !

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  3. #3
    Candidat au Club
    Homme Profil pro
    Apprenti Amelioration continue
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti Amelioration continue
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Par défaut
    Merci pour l'information et pour ma remarque sur l'écriture de mon programme j'étais ironique désolé que vous l'ayez mal pris.

    j'ai utilisé l'enregisteur de macro voila ce qu'il me donne
    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    Sub Macro2()
    '
    ' Macro2 Macro
    '
    ' Touche de raccourci du clavier: Ctrl+Shift+O
    '
        Sheets("ERP vierge").Select
        Sheets("ERP vierge").Copy After:=Sheets(2)
        Sheets("Hall de debit stockage").Select
        Selection.Copy
        Sheets("ERP vierge (2)").Select
        Sheets("ERP vierge (2)").Name = "1.1.1"
        Sheets("Hall de debit stockage").Select
        Range("A1:D1").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "Unité de travail : HALL DE DEBIT STOCKAGE"
        ActiveSheet.Shapes.Range(Array("Text Box 2")).Select
        Range("A1:D1").Select
        Selection.Copy
        Sheets("1.1.1").Select
        Range("A1:K1").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "Unité de travail"
        Sheets("Hall de debit stockage").Select
        Range("A1:D1").Select
        ActiveCell.FormulaR1C1 = "Unité de travail : HALL DE DEBIT STOCKAGE"
        Sheets("1.1.1").Select
        Range("A1:K1").Select
        ActiveCell.FormulaR1C1 = "Unité de travail : HALL DE DEBIT STOCKAGE"
        Sheets("Hall de debit stockage").Select
        Range("D7").Select
        Selection.Copy
        Sheets("1.1.1").Select
        Range("A3:D3").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "Risque : Nom du risque"
        With ActiveCell.Characters(Start:=1, Length:=0).Font
            .Name = "Calibri"
            .FontStyle = "Normal"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
        With ActiveCell.Characters(Start:=1, Length:=8).Font
            .Name = "Calibri"
            .FontStyle = "Normal"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleSingle
            .ColorIndex = 1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontNone
        End With
        With ActiveCell.Characters(Start:=9, Length:=14).Font
            .Name = "Calibri"
            .FontStyle = "Normal"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
        Sheets("Hall de debit stockage").Select
        Range("D32").Select
        ActiveWindow.SmallScroll Down:=-18
        Range("D32").Select
        ActiveWindow.SmallScroll Down:=-15
        Range("D7").Select
        ActiveCell.FormulaR1C1 = _
            "lame de cisaille accessible (côté machine et col de cygne)"
        Sheets("1.1.1").Select
        Range("A3:D3").Select
        ActiveCell.FormulaR1C1 = _
            "Risque : lame de cisaille accessible (côté machine et col de cygne)"
        With ActiveCell.Characters(Start:=1, Length:=0).Font
            .Name = "Calibri"
            .FontStyle = "Normal"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
        With ActiveCell.Characters(Start:=1, Length:=8).Font
            .Name = "Calibri"
            .FontStyle = "Normal"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleSingle
            .ColorIndex = 1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontNone
        End With
        With ActiveCell.Characters(Start:=9, Length:=59).Font
            .Name = "Calibri"
            .FontStyle = "Normal"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
        Range("G7").Select
        Sheets("Hall de debit stockage").Select
        Range("E7:L7").Select
        Selection.Copy
        Sheets("1.1.1").Select
        Range("C7").Select
        ActiveSheet.Paste
        Range("K7").Select
        Sheets("Hall de debit stockage").Select
        Range("M7").Select
        Application.CutCopyMode = False
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
            "'1.1.1'!A1", TextToDisplay:="'1.1.1'!A1"
        Range("M10").Select
    End Sub
    1er question quel type de boucle est le mieux pour ce programme ?

    Je vais essayer d'écrire étapes par étapes le programme.

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Si début et fin de boucle sont connus, alors la structure ForNext est appropriée.

    Une éventualité : ne serait-il pas mieux de dupliquer la feuille source via Worksheets("ERP vierge").Copy puis
    dans la copie de juste enlever l'inutile ? …

  5. #5
    Candidat au Club
    Homme Profil pro
    Apprenti Amelioration continue
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti Amelioration continue
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Par défaut
    Merci pour votre répoonse ,

    ça serait alors de créée une nouvelle feuille et de copier avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("ERP vierge").Copy
    au lieu de duplicater?

    Question pour la boucle j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub boucle_for()
     
        For i = 7 To 163
            'Instructions
        Next
     
    End Sub
    et je voudrais savoir si il est possible d'appeler la variable i dans l'instruction et si on peut l’incrémenter si une condition n'est pas verifiée

Discussions similaires

  1. demande aide pour création de macros
    Par loumis dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/02/2015, 21h08
  2. Demande d'aide pour création d'un script
    Par arthur270 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/11/2013, 10h48
  3. Demande d'aide pour création d'un script
    Par arthur270 dans le forum Général Python
    Réponses: 4
    Dernier message: 19/10/2013, 16h23
  4. [XL-2007] Aide pour création de macro - débutant total en VBA
    Par Pierre Jean-Pierre dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2013, 10h36
  5. demande d'aide pour création script.ksh
    Par LuckySoft dans le forum Linux
    Réponses: 2
    Dernier message: 26/11/2008, 13h34

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