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 :

Insertion d'une ligne avec formules de calcul


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
    Sans activité
    Inscrit en
    Avril 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Sans activité

    Informations forums :
    Inscription : Avril 2017
    Messages : 21
    Par défaut Insertion d'une ligne avec formules de calcul
    Bonjour

    J'ai un tableau avec un nombre variable de lignes Détail.
    Sur chaque ligne, il y a une ou plusieurs formules de calcul.
    J'ai créé une macro pour insérer une nouvelle ligne au dessus de la cellule active., en effaçant les valeurs, mais pas les formules.

    ' Sélection de la ligne à copier
    Selection.EntireRow.Select
    ' Copie de la ligne
    Selection.Copy
    ' Coller
    Selection.Insert Shift:=xlDown

    ' On error évite de provoquer un blocage si une instruction ci-après provoque une erreur
    ' ce qui se produirait s'il n'y a pas de cellule avec une formule sur la ligne insérée
    On Error Resume Next
    ' Effacer valeur des cellules ne contenant pas de formule
    ' pour la ligne ajoutée
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.ClearContents

    Mon problème :
    Cela fonctionne bien la première fois.
    J'obtiens une nouvelle ligne sans valeur, mais avec maintien des formules.

    Mais si je relance ma macro depuis cette nouvelle ligne - donc sans aucune valeur -, la nouvelle ligne créée n'emporte plus les formules.

    A noter que si je supprime l'instruction On Error, VBA provoque alors une anomalie "Pas de cellules correspondantes"

    Merci de votre aide

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, teste ceci:

    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
    Sub test()
     
        Dim rng As Range
        Dim newRow As Range
     
        ' Désélectionner toute autre sélection pour éviter des comportements imprévus
        Application.CutCopyMode = False
     
        Set rng = Selection.EntireRow
     
        rng.Insert Shift:=xlDown
     
        Set newRow = rng.Offset(-1, 0)
     
        rng.Copy
        newRow.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats
     
        Application.CutCopyMode = False
     
        On Error Resume Next
        newRow.SpecialCells(xlCellTypeConstants).ClearContents
        On Error GoTo 0
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Sans activité
    Inscrit en
    Avril 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Sans activité

    Informations forums :
    Inscription : Avril 2017
    Messages : 21
    Par défaut
    Bonjour
    Merci de votre retour.
    J'ai testé. Ca marche
    Super
    Bonne journée

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 572
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 572
    Par défaut
    Bonjour

    Il suffit d’utiliser les tableaux structurés présents depuis plus de 20 ans dans Excel et toute ligne insérée hérite des formules, formats, validation définis pour toutes les colonnes du tableau

  5. #5
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 224
    Par défaut
    Je "plussoie" la réponse de 78chris, les macro c'est bien quand la fonction n'existe pas, mais il est inutile de réinventer la roue

Discussions similaires

  1. [XL-2013] Insertion d'une ligne avec recopie des formules
    Par golf-mikka dans le forum Excel
    Réponses: 2
    Dernier message: 10/11/2018, 01h34
  2. Insertion d'une ligne avec recopie des formules sur feuille protégée
    Par patrice rabiller dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/09/2017, 19h45
  3. PHPEXCEL impossible de lire le contenu d'une ligne avec formule
    Par Akim13 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/05/2013, 15h54
  4. [XL-2003] Insertion d'une ligne avec recopie des formules ?
    Par OtObOx dans le forum Excel
    Réponses: 6
    Dernier message: 31/03/2012, 22h00
  5. [XL-2007] Insertion d'une ligne avec sous-totaux
    Par VIPNO dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/02/2012, 16h41

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