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 :

Copier le contenu d'un classeur vers un autre classeur et adapter la mise en forme; [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Par défaut Copier le contenu d'un classeur vers un autre classeur et adapter la mise en forme;
    Bonjour et d'avance merci pour les réponses que vous pourrez m'apporter.

    Je ne suis pas un crack en visual basic et mon problème à sans doute déjà été traité dans un post ultérieur mais je ne parviens pas y voir clair.

    En résumé:

    J'ai un programme qui génère automatiquement un classeur excel nommé "Book1.xlsx".
    Je souhaite créer une macro dans un autre classeur ouvert qui reprend des valeurs de chaque feuilles et les recopies dans ce classeur nommé "rap_journ_automatique.xlsm"

    J'ai effectué l'enregistrement d'une macro avec des commandes de copier-coller d'un classeur à l'autre, modifier le format et lance automatiquement l'impression.
    Jusque là tout allez bien mais lorsque je ferme ce classeur et génère une nouveau classeur portant le même nom"Book1.xlsx" plus rien ne vas et génère le code d'erreur d'exécution '9'.

    Je dois sans doute déclarer mes variables mais je ne sais pas comment faire.

    Autre question du même type:

    Dans ma macro j'aimerai remplacer le nom données aux feuilles dans lesquelles se fait la copie (ex: "150518") par feuille 1, etc. de manière à ce que je puisse exploiter mon code sur tous les nouveaux classeurs générés "Book1.xlsx"

    Ci-dessous mon code erroné
    encore merci


    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
    Sub Macro5()
    '
    ' Macro5 Macro
    '
     
    '
        Windows("Book1.xlsx").Activate
        Sheets("140518").Select
        Range("H3").Select
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("I1").Select
        ActiveSheet.Paste
        Windows("Book1.xlsx").Activate
        Range("J3").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("G1").Select
        ActiveSheet.Paste
        Windows("Book1.xlsx").Activate
        Range("B5:L17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("A8").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.SmallScroll Down:=15
        Windows("Book1.xlsx").Activate
        Sheets("150518").Select
        Range("J3").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("G34").Select
        ActiveSheet.Paste
        Windows("Book1.xlsx").Activate
        Range("B5:L17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("A41").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("L48").Select
        ActiveWindow.SmallScroll Down:=33
        Windows("Book1.xlsx").Activate
        Sheets("160518").Select
        Range("J3").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("G66").Select
        ActiveSheet.Paste
        Windows("Book1.xlsx").Activate
        Range("B5:L17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("A73").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.SmallScroll Down:=33
        Windows("Book1.xlsx").Activate
        Sheets("170518").Select
        Range("J3").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("G98").Select
        ActiveSheet.Paste
        Windows("Book1.xlsx").Activate
        Range("B5:L17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("A105").Select
        ActiveSheet.Paste
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.SmallScroll Down:=6
        Application.CutCopyMode = False
        With Selection
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = True
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        ActiveWindow.SmallScroll Down:=24
        Windows("Book1.xlsx").Activate
        Sheets("180518").Select
        Range("J3").Select
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("G130").Select
        ActiveSheet.Paste
        Windows("Book1.xlsx").Activate
        Range("B5:L17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("rap_journ_automatique.xlsm").Activate
        Range("A137").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.SmallScroll Down:=24
        Range("I169").Select
        ActiveWindow.SmallScroll Down:=-261
        Range("A1").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jeff287 Voir le message
    Bonjour,

    Vos onglets du fichier source semblent correspondre à des journées. Vos noms d'onglets étant codés en dur, il est probable que votre code ne devrait fonctionner qu'une seule fois.
    Vous n'expliquez pas ce que peut contenir votre fichier source d'une situation à l'autre (nombre d'onglets) et la destination des données dans le fichier cible suivant les jours.

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Par défaut
    Merci pour votre réaction.

    En fait je voudrais remplacer les onglets encodés en dur par des variables compatibles avec n'importe quels nouveaux onglets. Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jeff287 Voir le message
    OK mais vous n'indiquez pas combien il peut y avoir d'onglets et la règle de gestion pour sauvegarder vos données.

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Par défaut
    Pour le moment j'ai toujours 5 onglets mais si l on crée une boucle qui reprends autant d onglets que l'on veut c'est encore mieux.

    Je n'ai pas besoin de sauver les donner mais uniquement les imprimer.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jeff287 Voir le message
    Pour le moment j'ai toujours 5 onglets mais si l on crée une boucle qui reprends autant d onglets que l'on veut c'est encore mieux.
    Quelles sont les règles de gestion pour déverser vos données sur le fichier cible ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/10/2007, 08h32
  2. Copier le contenu d'un fichier vers un autre fichier Excel
    Par mathias dans le forum VBA Access
    Réponses: 4
    Dernier message: 13/06/2007, 14h47
  3. [VBA-E]Copier le contenu d'une cellule vers une autre
    Par idir.17 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 26/03/2007, 16h50
  4. Réponses: 12
    Dernier message: 22/02/2006, 15h28
  5. [VBA]Copier le contenu d'une cellule d'un autre classeur
    Par dudu59 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2006, 17h08

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