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 :

Ajouter une ligne en fin de tableau excel avec une vba [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Analyste financier
    Inscrit en
    Avril 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Analyste financier
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 13
    Par défaut Ajouter une ligne en fin de tableau excel avec une vba
    Salut,

    je travail sur un projet sur excel et je désire utiliser une macros pour le faire. mon problème consiste a ajouter une ligne en fin de tableau excel avec une vba pour construire ma base de donner, par fin de tableau je veux dire insérer une ligne en dessous de la dernière utilisé selon ces conditions respectivement:
    stat.xlsm
    1- copier les lignes 6,7,8,9 avec les formules et la mise en forme
    2- insérer une ligne en fin de tableau a chaque fois que je clique sur le bouton pour coller les lignes précédentes
    3- coller les lignes 6,7,8,9 sous la dernière ligne occuper
    4- modifier la date via la fonction aujourd'hui dans la colonne C
    5- supprimer les 8 données dans les colonnes E et F (4 dans E et 4 dans F pour chaque date) pour saisie manuelle ultérieurement
    6- insérer une commande pour ôter+protéger la feuille lorsque je clique sur le bouton tout en me permettant de saisir les données dans les colonnes E et F manuellement

    ci-joint le fichier dont la macros ne fonctionne pas malheureusementstat.xlsm

    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
     
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
        ActiveWindow.SmallScroll Down:=12
        Range("B22:M25").Select
        Selection.Copy
        Range("B26").Select
        ActiveSheet.Paste
        Range("C26").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "=TODAY()"
        Range("C26").Select
        Selection.AutoFill Destination:=Range("C26:C29"), Type:=xlFillDefault
        Range("C26:C29").Select
        Range("C22:C25").Select
        Selection.Copy
        Range("C26:C29").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        Range("E26:F29").Select
        Selection.ClearContents
        Range("E26").Select
    End Sub

  2. #2
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    Bonjour et bienvenue sur le forum
    A tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Macro1()
    ActiveSheet.Unprotect
    Dim derligne As Integer
    Dim derlign As Integer
        derligne = Worksheets("Feuil3").Range("B65536").End(xlUp).Row
    Range("B6:M9").Copy
    Sheets("Feuil3").Range("B" & derligne + 2).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
            , SkipBlanks:=False, Transpose:=False
        derlign = Worksheets("Feuil3").Range("C65536").End(xlUp).Row
    Range("C" & derlign & ":C" & derlign - 4).Value = Date
    Range("E" & derlign - 3 & ":F" & derlign).ClearContents
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Sub
    A bientôt

  3. #3
    Membre habitué
    Homme Profil pro
    Analyste financier
    Inscrit en
    Avril 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Analyste financier
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 13
    Par défaut
    Bonjour Nicolas,

    Vraiment 1000 merci ça fonctionne à merveille vraiment tous comme désirer. je viens de découvrir l'utilité des macros récemment vu que je passé des heures a faire plusieurs taches respectives alors que maintenant 5 minutes max et en cliquant sur un seul boutant. ça me rend la vie plus facile comme vous dites en France

    Pouvez vous please me dire ou je me suis trompé dans ma macro enregistrée automatiquement? et une dernière demande, pretty please, lorsque je protégé la feuille je veux avoir la possibilité de saisie manuelle dans les 8 cellules sans pour autant ôter la protection de la feuille (genre une commande spécial)

    est cela est possible?

  4. #4
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    L'enregistreur enregistre vos actions, après il faut affiner, parce qu'il ne peut pas deviner tous seule l'emplacement ou vous souhaitez vos enregistrement.
    si ça répond à votre question

    sinon pour ce qui est de la protection, je suis pas doué, je ne sais pas.

  5. #5
    Membre habitué
    Homme Profil pro
    Analyste financier
    Inscrit en
    Avril 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Analyste financier
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 13
    Par défaut
    I've just found the solution mate j'ai juste selectionner la feuille et verrouillé que les cellules voulus le reste ca marche

    une remarque dear friend, pour cette ligne j'ai changer -4 par -3 vu que j'ai remarquer que lorsqu'il change la date des cellules copié il modifie aussi celle de la dernière ligne. je pense que c'est bon non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C" & derlign & ":C" & derlign - 4).Value = Date
    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
    ub ADD()
    '
    ' ADD Macro
    '
    ActiveSheet.Unprotect 
    Dim derligne As Integer
    Dim derlign As Integer
        derligne = Worksheets("BCTX KEYS").Range("B65536").End(xlUp).Row
    Range("B606:M609").Copy
    Sheets("BCTX KEYS").Range("B" & derligne + 2).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
            , SkipBlanks:=False, Transpose:=False
        derlign = Worksheets("BCTX KEYS").Range("C65536").End(xlUp).Row
    Range("C" & derlign & ":C" & derlign - 3).Value = Date
    Range("E" & derlign - 3 & ":F" & derlign).ClearContents
    ActiveSheet.protect 
    '
    End Sub

  6. #6
    Membre habitué
    Homme Profil pro
    Analyste financier
    Inscrit en
    Avril 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Analyste financier
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 13
    Par défaut
    Salut cher Nicolas,

    je reviens vers vous pour vous demandez une autre aide svp. c'est le même principe que l'autre fois avec des copier/coller + ajouter des lignes au dessous de la dernière ligne occupée en changeant la date d'aujourd'hui puis recueillir des données d'une autres feuilles et les collés juste chiffre pas de formule.

    je vous présente ma macros qui n'a pas fonctionné du tout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Workbooks.Open Filename:= _
            "C:\Users\mega-pc\Desktop\MACROS EXCEL\STAT BBE.xlsx", UpdateLinks:=3
     
            Dim derligne As Integer
            Dim derlign As Integer
            derligne = Worksheets("Feuil1").Range("B65536").End(xlUp).Row
            Range("B7:V10").Copy
            Sheets("Feuil1").Range("B" & derligne + 2).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
            , SkipBlanks:=False, Transpose:=False
        derlign = Worksheets("Feuil1").Range("C65536").End(xlUp).Row
    Range("B" & derlign & ":C" & derlign - 4).Value = Date
    End Sub

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

Discussions similaires

  1. [XL-2016] Ajouter une ligne en fin de tableau excel avec une vba
    Par Karkan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/01/2017, 15h06
  2. [XL-2007] Génerer un tableau Excel avec une sgbd sous Excel
    Par Malela dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/01/2013, 16h50
  3. Problème avec une macro faisant apel à un tableau Excell
    Par valouche dans le forum Macros et VBA Excel
    Réponses: 52
    Dernier message: 19/06/2007, 12h38
  4. Ajouter une ligne en fin de fichier sans écraser le fichier
    Par Premium dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 05/04/2007, 13h07
  5. Ajouter une ligne à la fin d'un classeur excel
    Par maketossss dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 09h38

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