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 :

Étendre une formule jusqu'à la dernière ligne


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Étendre une formule jusqu'à la dernière ligne
    Bonjour,

    Dans une macro (je ne suis pas trés doué et utilise l'enregistrement de macro) je souhaite qu'une formule soit étendu jusqu'à la dernière ligne de mon tableau.
    Dans ma feuille de calcul ce cas ce présente pour plusieurs colonne pas obligatoirement à coté les unes des autres.
    J'ai essayé pour chacune de mes colonnes mais sans succés.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim DernLigne As Long
        DernLigne = Range("D" & Rows.Count).End(xlUp).Row
     
        With Sheets("Données triées")
            .Range("D2").FormulaR1C1 = "=RC[-1] & "" "" & RC[-2]"
            .Range("D2").AutoFill .Range("D2:D" & DernLigne)
        End With
    Merci pour vos conseils.

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 365
    Points : 631
    Points
    631
    Par défaut
    pour moi (microsoft office2007)si tu crée un tableau

    insertion Tableau

    la formule en D2 est dupliquée sur toute la colonne



    également si tu ajoute une ligne.

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    et si pour raison d'apprentissage essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub test()
    Dim DernLigne As Long
    DernLigne = Range("B" & Rows.Count).End(xlUp).Row
    With Sheets("Données triées")
    .Range("D2").FormulaR1C1 = "=RC[-1] & "" "" & RC[-2]"
    .Range("D2").Select
    Selection.AutoFill Destination:=Range("D2:D" & DernLigne), Type:=xlFillDefault
    End With
    End Sub
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    attention
    tu cherches la dernière ligne non vide à partir de la colonne D alors que normalement cette colonne va recevoir la concaténation de B et C donc est vide non ??
    c'est pourquoi j'ai cherché la dernière ligne non vide à partir de la colonne B
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Merci pour ces réponses.
    J'ai bien essayé mais les formules et autres ne sont copiés que jusqu'à la ligne 23, alors que j'en ai presque 1000.
    Je peux vous faire suivre le code.

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Pour préciser la réponse de a_diard : pas besoin de VBA, Excel fait ça tout seul comme un grand (de 36 ans) !

    A lire : Tableaux structurés Excel
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    J'ai bien essayé mais les formules et autres ne sont copiés que jusqu'à la ligne 23, alors que j'en ai presque 1000.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DernLigne = Range("B" & Rows.Count).End(xlUp).Row
    Pour déterminer la dernière cellule non vide , dans ma proposition je suppose que la colonne B est remplie jusqu'au 1000 non ??
    si non à remplacer pas A si c'est la colonne remplie jusqu'à la fin
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos retours.

    @BENNASR : oui j'avais bien modifié le colonne

    @Patrice740 : cette solution me plait bien, je fais une macro pour automatiser le traitement des mes données. J'aurais une question au sujet des tableaux structurés.
    Si pour le traitement de mes données le nombre de lignes varient est-ce que mes tableaux structurés via ma macro vont s'adpater ?

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 760
    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 : 12 760
    Points : 28 618
    Points
    28 618
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si pour le traitement de mes données le nombre de lignes varient est-ce que mes tableaux structurés via ma macro vont s'adpater ?
    Bien entendu, c'est l'un des énormes avantages des tableaux structurés. L'objet ListObject a ses propres propriétés et méthodes qui nous permettent par exemple de connaître le nombre de lignes, colonnes, l'adresse de la zone des données, des totaux, des titres, etc.

    Après avoir lu le tutoriel proposé par Patrice, que je salue au passage, je vous conseille la lecture de celui-ci Excel: Les tables de données en VBA
    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

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Dans mon modèle de travail, j'importe dans mon fichier Excel 1 feuille de calcul ("Produits") avec un nombre variable de lignes, le nombre de colonnes est identique.
    Dans ma macro actuelle : mon tableau structure fait 967 lignes, mais je voudrais que ce nombre dépendent du nombre réel de lignes dans mon classeur. En effet , ensuite les données sont classées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sheets("Produits").Select
        Rows("1:2").Select
        Application.CutCopyMode = False
        Selection.Delete Shift:=xlUp
        Range("A1").Select
        ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AH$967"), , xlYes).Name = _
            "Tableau1"
    Bruno

  11. #11
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Avec quelques bribes de code, il n'est pas facile de comprendre et donc de t'aider.

    Mais je ne comprends pas pourquoi chercher compliqué où c'est simple :
    - AutoFill est inutile, il suffit d'appliquer la formule R1C1 à la plage concernée.
    - Pourquoi copier des lignes pour les supprimer ensuite ? il suffit de copier uniquement ce qui est utile.
    - Au début tu utilises With, c'est bien, mais ensuite pourquoi tous ces horribles Select ????
    Regardes l'aide de CurrentRegion.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Je ne maîtrise pas vraiment les macro, et j'utilise donc l'enregistrement de macro.
    Ensuite je ne touche à rien..

    Je peux te faire suivre mon code complet si tu veux.

    Bruno

  13. #13
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    à mon modeste avis, et pour arriver au but, il est utile de joindre un capture écran des données de départ et une simulation du résultat attendu ou bien joindre un fichier test avec des données non confidentielle
    Bonne Continuation
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Je vus fais suivre une extraction de mes données.
    Le nombre de ligne est variable de 100 à plus de 1000.Trame.xlsm

  15. #15
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Qu'est ce que tu veux faire
    donnez un exemple
    je vois aucune relation entre la première intervention et l'intervention 5 ou 6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim DernLigne As Long
        DernLigne = Range("D" & Rows.Count).End(xlUp).Row
     
        With Sheets("Données triées")
            .Range("D2").FormulaR1C1 = "=RC[-1] & "" "" & RC[-2]"
            .Range("D2").AutoFill .Range("D2:D" & DernLigne)
        End With
    comparer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sheets("Produits").Select
        Rows("1:2").Select
        Application.CutCopyMode = False
        Selection.Delete Shift:=xlUp
        Range("A1").Select
        ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AH$967"), , xlYes).Name = _
            "Tableau1"
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Pas simple à expliqué avec des mots je joints le fichier final
    L'idée général est de mette en forme le deux onglets : suppression colonnes, concaténer des colonnes, transformer les informations de certaines colonnes
    Comparer deux colonnes de ces deux onglets pour s'assurer de travailler sur les mêmes info dans le m^me ordre
    Compiler les information des ces deux onglets en 1 seulTrame résultats final.xlsmTrame.xlsm

  17. #17
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    mette en forme le deux onglets
    quel onglet ?? il y a 6 dans le fichier joint
    suppression colonnes, concaténer des colonnes, transformer les informations de certaines colonnes
    quelle colonne ??
    donner des explication claires et simples et précises personnellement je ne suis pas un RMQ
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Septembre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2020
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    dans le fichier trame il y a deux feuilles avec des données "produits" et "utilisation et risques" c'est sur cela que je eux travailler.
    Le fichier trame résultats final est le but a atteindre


    Trame résultats final.xlsmTrame.xlsm

Discussions similaires

  1. [XL-2019] Ajout d'une formule jusqu'à la dernière ligne non vide
    Par Pauliakov dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/09/2019, 07h34
  2. [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, 16h57
  3. [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, 15h38
  4. [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, 14h44
  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, 14h56

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