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 :

Macro pour enregistrer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    employer
    Inscrit en
    Août 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : employer

    Informations forums :
    Inscription : Août 2017
    Messages : 8
    Par défaut Macro pour enregistrer
    Bonjour.

    Voila je suis tout nouveau sur voter site et j'aurais besoin de vous .

    Je ne sais pas si ce site et la pour ça mais bon aller hop je me lance.

    J'ai un tableau Excel sur le feuille n° 1, une fois rempli je voudrais l'enregistrer sur la feuille n° 2 la pas de problème.

    Mon tableau une fois enregistrer je l'efface et je remplie une autre fois le même tableau et je voudrais aussi l'enregistrer sur ma feuille n° 2.

    C'est la que le que je butte car il m'efface mon premier enregistrement.

    Avec ma macro il me demande bien si je veux effacer mon premier enregistrement et quand je dit non il y a une erreur sur ma macro car il ne comprend pas et ne sais pas ou enregistrer mon tableau.

    Alors mon message d'erreur et 1004 la méthode pasteSpeciall de la classe Range a échoué

    Et voici mon code, alors c'est un code que j'ai fait avec l'enregistrement de 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
    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
    Sheets("Tabelle2").Select
        Range("G1:O2").Select
        With Selection
            .HorizontalAlignment = xlCenter
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge
        ActiveCell.FormulaR1C1 = "=TODAY()"
        With Selection.Font
            .Name = "Comic Sans MS"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontNone
        End With
        Selection.Font.Size = 12
        Selection.Font.Size = 14
        Selection.Font.Size = 16
        Selection.Font.Size = 18
        Selection.Font.Bold = True
        With Selection.Font
            .Color = -16776961
            .TintAndShade = 0
        End With
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        Range("D12").Select
        Sheets("Tabelle1").Select
        Range("A3:J16").Select
        Selection.Copy
        Sheets("Tabelle2").Select
        Range("A3").Select
        Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        ActiveSheet.Paste
        Sheets("Tabelle1").Select
        Range("K3:U22").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Tabelle2").Select
        Range("K3").Select
        Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        ActiveSheet.Paste
        Range("E21").Select
        Sheets("Tabelle1").Select
        Range("F22").Select
        Application.CutCopyMode = False
    je vous remercie

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    L'enregistreur de macro est un très bon outil mais utiliser tel quel le code qu'il propose est une erreur.
    Il faut essayer de comprendre ce code et de le "débarbouiller".

    Parce que le code que tu montres ressemble franchement à un gloubiboulga infâme (il y a plus de la moitié des lignes qui ne servent à rien).

    Sérieux : commence par un peu prendre la peine de le nettoyer et après on pourra y mettre les doigt.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Comme le dit si bien Menhir, l'enregistreur de macro est souvent utile mais afin de l'utiliser à bon escient, il faut enregistrer une action après l'autre et entre deux enregistrements, il faut essayer de comprendre le code créé et surtout l'épuré car beaucoup d'instructions sont inutiles. j'ai un peu épuré le tien mais je n'ai fait aucun test donc, à toi de voir. Evites, si ce n'est pas nécessaire, les "Activate" et "Select" car c'est souvent pénible pour l'utilisateur car ça fait scintiller l'écran :
    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
     
    Sub Test()
     
        With Sheets("Tabelle2").Range("G1:O2")
     
            .HorizontalAlignment = xlCenter
            .Merge
            .FormulaR1C1 = "=TODAY()"
     
            With .Font
     
                .Name = "Comic Sans MS"
                .Size = 18
                .Bold = True
                .Color = -16776961
     
            End With
     
            With .Borders
     
                .LineStyle = xlContinuous
                .Weight = xlMedium
     
            End With
     
        End With
     
        With Sheets("Tabelle1")
     
            .Range("A3:J16").Copy Sheets("Tabelle2").Range("A3")
            .Range("K3:U22").Copy Sheets("Tabelle2").Range("K3")
            .Range("E21").Select
     
        End With
     
    End Sub

  4. #4
    Membre du Club
    Homme Profil pro
    employer
    Inscrit en
    Août 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : employer

    Informations forums :
    Inscription : Août 2017
    Messages : 8
    Par défaut
    Salut Theze.

    Je te remercie pour tes codes, il fonctionne très très bien .

    le seul hic, et oui, c'est que quand je refait un copier coller, il m'encrasse le premier, alors que j'aimerais qu'il me le colle a la suite.

    et si jamais ça pourrais aussi garder la mise en forme mais la je chipote un peux.

    merci

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Sacré courage Theze. Perso, je n'aurais pas osé y mettre les doigts.


    Citation Envoyé par cybercats74 Voir le message
    le seul hic, et oui, c'est que quand je refait un copier coller, il m'encrasse le premier, alors que j'aimerais qu'il me le colle a la suite.
    Remplacer les deux ligne de copie du code de Theze par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            .Range("A3:J16").Copy Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            .Range("K3:U22").Copy Sheets("Tabelle2").Cells(Rows.Count, 11).End(xlUp).Offset(1, 0)
    et si jamais ça pourrais aussi garder la mise en forme
    La mise en forme de la source ou de la destination ?

  6. #6
    Membre du Club
    Homme Profil pro
    employer
    Inscrit en
    Août 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : employer

    Informations forums :
    Inscription : Août 2017
    Messages : 8
    Par défaut
    merciiiiiiii a vous tous .

    alors Menhir c'est la mise en forme de la source que j'aimerais garder .

    encore merciiiiiiiiiiiiiiiiii

Discussions similaires

  1. création macro pour enregistrer code VBA
    Par Solenne86 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2009, 04h00
  2. Crée macro pour enregistrer en fichier .csv
    Par jonki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2008, 14h24
  3. Réponses: 12
    Dernier message: 31/07/2007, 15h21
  4. [VB] macro pour enregistrer sous
    Par CélineM dans le forum SDK
    Réponses: 1
    Dernier message: 07/06/2007, 12h28
  5. macro pour enregistrer sous
    Par macromega dans le forum Général VBA
    Réponses: 2
    Dernier message: 03/05/2007, 19h17

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