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 :

insérer une formule jusqu’à l'avant dernière ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    gestionnaire RH
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : gestionnaire RH
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Par défaut insérer une formule jusqu’à l'avant dernière ligne
    Bonjour
    pour l'amélioration un projet perso je doit insérer une formule jusqu’à l'avant dernier ligne de mon table (la dernière étant le total) je dois le faire sur plusieurs onglets dont le nombre ligne est variable.
    j'arrive a faire jusqu'a la dernière mais ca ne va pas. et pas possible de rajouter un "nouveau total" car les totaux sont repris dans l'onglet recapitulation. Merci pour votre aide
    voici où j'en suis
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Sub MEP_Formule()
    '
    'inserer automatiquement la nouvelle formule des manco et mettre en page pour voir le manque de formule
     
    'definition des variables
     
     Dim sht As Worksheet
     Dim derligne As String
     'definition de la dernière ligne
      derligne = Range("n" & Rows.Count ).End(xlUp).Row
     
      ' code pour chaque onglet sauf l'onglet récapitulation
     For Each sht In Worksheets
      Debug.Print sht.Name
      If sht.Name <> "récapitulation" Then
      ' mise a jour de l'entete de manco
      Range("k2").Value = "Manco"
      'insertion de la formule pour la manco automatique
      Range("k4:k" & derligne).FormulaR1C1 = "=IF(RC[-8]>0,"""",1)"
      Range("l4:k" & derligne).FormulaR1C1 = "=IF(RC[-7]>0,"""",1)"
      Range("i4:k" & derligne).FormulaR1C1 = "=IF(RC[-6]<0,RC[-6]*RC[-5],"""")"
      Range("j4:k" & derligne).FormulaR1C1 = "=IF(RC[-5]>0,RC[-5]*RC[-4],"""")"
      Range("m4:k" & derligne).FormulaR1C1 = "=IF(RC[-10]>0,RC[-4],"""")"
      Range("n4:k" & derligne).FormulaR1C1 = "=IF(RC[-9]>0,RC[-4],"""")"
      ' mise en forme conditionnelle
       Range("I4:N" & derligne).Select
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=ESTVIDE(I4)"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent6
            .TintAndShade = 0.799981688894314
        End With
        Selection.FormatConditions(1).StopIfTrue = True
      End If
     Next
    End Sub

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour
    Citation Envoyé par isa1988 Voir le message
    je doit insérer une formule jusqu’à l'avant dernier ligne de mon table (la dernière étant le total) je dois le faire sur plusieurs onglets dont le nombre ligne est variable.
    Regardes si cela résout ton problème mais je n'ai pas le classeur pour tester
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub MEP_Formule()
    '
    'inserer automatiquement la nouvelle formule des manco et mettre en page pour voir le manque de formule
     
    'definition des variables
     
     Dim sht As Worksheet
     Dim derligne As String
     'definition de la dernière ligne
     
      ' code pour chaque onglet sauf l'onglet récapitulation
     For Each sht In Worksheets
      Debug.Print sht.Name
      If sht.Name <> "récapitulation" Then
      ' mise a jour de l'entete de manco
      sht.Range("k2").Value = "Manco"
      derligne = sht.Range("n" & Rows.Count).End(xlUp).Row - 1
      'insertion de la formule pour la manco automatique
      sht.Range("k4:k" & derligne).FormulaR1C1 = "=IF(RC[-8]>0,"""",1)"
      sht.Range("l4:k" & derligne).FormulaR1C1 = "=IF(RC[-7]>0,"""",1)"
      sht.Range("i4:k" & derligne).FormulaR1C1 = "=IF(RC[-6]<0,RC[-6]*RC[-5],"""")"
      sht.Range("j4:k" & derligne).FormulaR1C1 = "=IF(RC[-5]>0,RC[-5]*RC[-4],"""")"
      sht.Range("m4:k" & derligne).FormulaR1C1 = "=IF(RC[-10]>0,RC[-4],"""")"
      sht.Range("n4:k" & derligne).FormulaR1C1 = "=IF(RC[-9]>0,RC[-4],"""")"
      ' mise en forme conditionnelle
      With sht.Range("I4:N" & derligne)
        .FormatConditions.Add Type:=xlExpression, Formula1:="=ESTVIDE(I4)"
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent6
            .TintAndShade = 0.799981688894314
        End With
        .FormatConditions(1).StopIfTrue = True
        End With
      End If
     Next
    End Sub

  3. #3
    Membre du Club
    Femme Profil pro
    gestionnaire RH
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : gestionnaire RH
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Par défaut
    en fait je voudrais que "derligne" soit définit comme étant la plage entre ma 4 ème ligne et la ligne au dessus de ma ligne total. ma ligne "total "est variable mais le mot "total" est forcement dans la colonne A.

  4. #4
    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 168
    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 168
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    D'après ma première lecture, je pense que la proposition faite par Anasecu répond à ton problème. C'est d'ailleurs la même réponse que j'aurais donnée.
    Il y avait deux problèmes : Le calcul de la dernière ligne qui était faite hors de la boucle et le fait qu'il fallait soustraire de 1 le calcul de la dernière ligne
    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

  5. #5
    Membre du Club
    Femme Profil pro
    gestionnaire RH
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : gestionnaire RH
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Par défaut
    merci c'est tout bon

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

Discussions similaires

  1. Insérer une formule dans une cellule Excel via VBA
    Par *.Har(d)t dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2020, 13h02
  2. étirer une formule jusqu'à un numéro de ligne
    Par statista dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/09/2016, 16h58
  3. Réponses: 12
    Dernier message: 23/03/2016, 14h11
  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. [AC-2003] Selectionner l'avant dernière ligne d'une requête
    Par Piccou dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/08/2009, 15h51

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