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 :

Ajout d'une formule jusqu'à la dernière ligne non vide [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Acheteur
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Acheteur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Par défaut Ajout d'une formule jusqu'à la dernière ligne non vide
    Bonsoir,

    Je bloque sur un code que pourtant je pensais pas trop compliqué.

    J'ai une base de données "Archives" alimenter avec une requête SQL. Une petite macro prend les données de la requête et les met à la suite dans ma feuille, sans espace.
    La date du jour est ajoutée automatiquement dans la colonne C.


    Je souhaite dupliquer les deux formules en A2 et B2 jusqu'à la dernière ligne non vide que l'on trouve dans la colonne D

    J'ai donc trouvé sur divers forums des aides pour faire cette macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Mise_à_jour()
     
        Dim DL As Integer
            DL = Range("D" & Rows.Count).End(xlUp).Row
                Range("B2").AutoFill Destination:=Range("B3:B" & DL), Type:=xlFillDefault
            Range("A2").Select
     
    End Sub

    Mais je n'ai ni message d'erreur, ni résultat donc je bloque un peu. Auriez-vous une idée ?

    Je vous mets un fichier test en pièce jointe pour illustrer mon propos

    test.xlsm

    De plus, je cherche le moyen de vérifier que la date du jour ne soit pas déjà dans la colonne C, si c'est le cas, ça devrait empêcher la macro de fonctionner, pour ne pas faire deux fois la sauvegarde

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 143
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 143
    Par défaut
    Bonjour,
    Citation Envoyé par Pauliakov Voir le message
    J'ai donc trouvé sur divers forums des aides pour faire cette macro
    Comme ceci cela fonctionnerait sans doute mieux
    et évite de mettre cette macro dans Thisworbook où elle n'a rien à faire
    tu la mets dans la feuille ou dans un module standard.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Mise_à_jour_stock()
    
        Dim DL As Integer
        With ActiveSheet
            DL = .Range("D" & Rows.Count).End(xlUp).Row
                .Range("B2").AutoFill Destination:=.Range("B2:B" & DL), Type:=xlFillDefault
            .Range("A2").Select
        End With
    End Sub

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Petite remarque : Le nombre de lignes dans une feuille Excel étant de 1.048.576, il serait plus judicieux de typer la variable DL comme un Long et pas comme un Integer

    Autre solution que l'utilisation de la méthode AutoFill
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub CopyFormula()
      Dim DL As Long
      With ActiveSheet
        DL = .Range("A" & Rows.Count).End(xlUp).Row
       .Range("D2:D" & DL).Formula = .Range("D2").Formula
      End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre averti
    Homme Profil pro
    Acheteur
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Acheteur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Par défaut
    Bonjour,

    Merci pour votre aide, la dernière solution fonctionne et je ferais plus attention concernant l'ajout d'une macro sur un module plutôt que dans Thisworkbook

    Cordialement

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

Discussions similaires

  1. [XL-2007] Faire une boucle jusqu'à la dernière ligne remplie
    Par clemmfds dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 19/07/2016, 17h57
  2. [XL-2013] Dérouler une cellule jusqu'à la dernière ligne de la colonne d'avant
    Par backx3 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/03/2016, 16h38
  3. [XL-2007] Macro comment copier une formule jusqu'à la derniere ligne d'une col
    Par zaza45 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/01/2012, 15h44
  4. [XL-2003] Récupérer une cellule de la dernière ligne non vide d'un tableau
    Par christoff916 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/08/2011, 15h22
  5. [XL-2003] code copier formule jusqu'à la dernière ligne
    Par ridokou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2011, 15h56

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