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 ajout de ligne [XL-2016]


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
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Par défaut Macro ajout de ligne
    Bonjour à tous,

    Je cherche à faire une macro associée à un bouton pour ajouter une ligne dans deux tableaux différents et étendre les formules.

    J'ai donc utilisé l'enregistreur de macro. je veux que cette insertion se fasse toujours à la fin d'une plage de cellule j'ai donc inséré une ligne (que je masquerai par la suite) pour insérer une ligne au dessus de cette dernière. j'ai nommé les cellules pour y faire appel dans la macro et ne pas subir les décalages de lignes dues aux insertions précédentes.

    Le problème que j'ai est le suivant:
    j'arrive à insérer la ligne toujours au même endroit, mais le problème c'est pour étendre les formules. Je veux que les formules s'étendent toujours de la ligne à partir de laquelle je fait l'insertion jusqu'à la ligne supérieure (celle que je viens d'insérer)
    En gros dans ma destination d'extension il faut que j'arrive à dire "la case supérieure à la case de la ligne d'insertion" mais je ne sais pas comment faire ça ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Range("ligneinserta1").Select
        Selection.EntireRow.Insert
        Range("ligneinserta1:ligneinserta2").Select
        Selection.AutoFill Destination:=Range("E11:G12"), Type:=xlFillDefault
        Range("ligneinserta1:ligneinserta2").Select
        Range("E11").Select
        Sheets("Feuil2").Select
        Range("ligneinserta10").Select
        Selection.EntireRow.Insert
        Range("ligneinserta10:ligneinserta20").Select
        Selection.AutoFill Destination:=Range("E8:G9"), Type:=xlFillDefault
        Range("ligneinserta10:ligneinserta20").Select
        Range("E8").Select
        Sheets("Feuil1").Select
    J'ai mis en bleu la partie qu'il faut que j'arrive à modifier...

    Si quelqu'un peut m'aider ça serait top !

    Merci d'avance,

    Théo
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    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 : 367
    Par défaut
    Bonjour
    Par exemple pour le début de ta macro ...(4 premières lignes)

    Je crois que les select peuvent (voir doivent) être supprimés.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("ligneinserta1").EntireRow.Insert
        Range("ligneinserta1:ligneinserta2").AutoFill Destination:=Range("E" & Range("ligneinserta1").Row - 1 & ":G" & Range("ligneinserta1").Row), Type:=xlFillDefault
    Bonne journée

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Par défaut
    Bonjour a_diard et merci pour ta réponse

    L'idée de cette macro était d'ajouter une ligne sur deux feuille du tableur en simultané.

    J'ai donc essayé d'adapté ton code (simplement dupliquer la manip avec d'autres références)

    j'ai testé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("ligneinserta1").EntireRow.Insert
        Range("ligneinserta1:ligneinserta2").AutoFill Destination:=Range("E" & Range("ligneinserta1").Row - 1 & ":G" & Range("ligneinserta1").Row), Type:=xlFillDefault
        Range("ligneinserta10").EntireRow.Insert
        Range("ligneinserta10:ligneinserta20").AutoFill Destination:=Range("E" & Range("ligneinserta10").Row - 1 & ":G" & Range("ligneinserta10").Row), Type:=xlFillDefault
    Mais je ne comprends pas pourquoi ça ne fonctionne pas alors que ça marche sur la première page

    Peux-tu m'aider stp?

    Merci !!

  4. #4
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    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 : 367
    Par défaut
    Bonsoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("ligneinserta1").EntireRow.Insert
        Range("ligneinserta1:ligneinserta2").AutoFill Destination:=Sheets("Feuil1").Range("E" & Range("ligneinserta1").Row - 1 & ":G" & Range("ligneinserta1").Row), Type:=xlFillDefault
        Range("ligneinserta10").EntireRow.Insert
        Range("ligneinserta10:ligneinserta20").AutoFill Destination:=Sheets("Feuil2").Range("E" & Range("ligneinserta10").Row - 1 & ":G" & Range("ligneinserta10").Row), Type:=xlFillDefault

    En alors en sélectionnant les feuilles.

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Par défaut
    Merci beaucoup !

    ça marche super maintenant !

    Bonne journée !

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

Discussions similaires

  1. Problème macro: ajout à la ligne suivante impossible
    Par xaviou99 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2018, 09h31
  2. [XL-2016] [Macro] - Ajout de lignes fin de tableaux
    Par Aooka dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/01/2018, 16h59
  3. Aide macro : ajout de ligne sur plusieurs tableaux
    Par BoerdKass dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/09/2017, 06h45
  4. [WD-2003] Macro copie/colle tableau - Macro ajout de ligne
    Par Graineur dans le forum VBA Word
    Réponses: 17
    Dernier message: 02/08/2010, 09h32
  5. macro access: supprimer ligne table et ajout texte champs
    Par uldrych.maillet dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/12/2007, 22h11

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