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 :

Lors de l'insertion d'une ligne ne pas modifier les lignes de calcul


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut Lors de l'insertion d'une ligne ne pas modifier les lignes de calcul
    Bonjour a tous,

    Lorsque j'insère une ligne avec le code VBA avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A6").Select
                Selection.EntireRow.Insert
                Selection.RowHeight = 15 'on définit sa hauteur
    Cela me décale toutes mes formules

    Exemples de formules: =SI(CA2=0;BD6-BC4;BD6+BC4)
    Avec la nouvelle ligne cette formule devient :
    =SI(CA2=0;BD7-BC4;BD7+BC4)
    J'aimerais gardé l'intégralité des formules lors d'une insertion de ligne.

    Comment faire?
    Merci

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt, je vais peux-être dire une bêtise mais pourquoi pas ne pas utiliser les $ pour mettre les cellules BD6 en référence absolue comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(CA2=0;$BD$6-BC4;$BD$6+BC4)
    A+

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Slt, je vais peux-être dire une bêtise...
    certes, as tu testé?

    une manière de détourner est de ré insérer les formules par vba sur ajout de la ligne. ça risque d'être fastidieux si le nombre de formules est conséquent.
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Columns.Count = Columns.Count Then Range("A3").Formula = "=if(C3=0,B2-B6,B2+B6)"
    End Sub

  4. #4
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Mea culpa, non j'ai pas testé, , c'était juste une idée, pas lumineuse j'en conviens.

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Merci pour vos réponses,

    J'ai testé quand meme la solution avec l'ajout du dollar. Mais sans conséquence.
    Malheuresement, j'ai 312 formules répartis sur 4 lignes et 78 colonnes.
    Si j'ai une autre solution que d'ajouter les formules dans toutes les cellules, je suis preneur.

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour,
    une première approche approximative (à développer)
    ajouter la ligne 6 à l'aide d'un bouton
    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
    Private Sub CommandButton1_Click()
    Dim TabFormulas As Variant
    Dim plage As Range, cel As Range
    Dim i As Integer
    Set plage = Range("A1:J100")
    i = 0
    On Error GoTo fin ' au cas où aucune formule
    ReDim TabFormulas(0 To 1, 0 To plage.SpecialCells(xlCellTypeFormulas).Cells.Count - 1)
     
    For Each cel In plage.SpecialCells(xlCellTypeFormulas).Cells 'tableau contenant la formule et l'adresse initiale de la cellule
        TabFormulas(0, i) = cel.Formula
        TabFormulas(1, i) = cel.Address
        cel.ClearContents                   'supprime les formules
        cel.Interior.ColorIndex = 33
        i = i + 1
    Next cel
    Rows(6).Insert                          'ajoute la ligne 6
    For i = 0 To UBound(TabFormulas, 2)
        Range(TabFormulas(1, i)).Formula = TabFormulas(0, i)  'recopie les formules à leurs places
    Next i
    fin:
    End Sub

Discussions similaires

  1. [Batch] Comment conserver les lignes de commentaires et les lignes vides ?
    Par mircow dans le forum Scripts/Batch
    Réponses: 12
    Dernier message: 25/11/2021, 16h33
  2. Réponses: 6
    Dernier message: 25/04/2015, 16h37
  3. Erreur lors de l'insertion d'une ligne (table avec relation 1-0)
    Par abbepierre94 dans le forum Silverlight
    Réponses: 9
    Dernier message: 10/01/2011, 12h34
  4. Réponses: 2
    Dernier message: 15/11/2007, 17h43
  5. [JDesktopPane] Problème lors de l'insertion d'une JInternalFrame
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 21/09/2005, 01h38

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