XL 2013 Incrémentation d'une ligne avec formule de calcul

ANTONY34200

XLDnaute Occasionnel
Bonjour,

j'ai besoin d'un petit coup de main.

J'aimerais pouvoir cliquer sur le bouton "nouvelle saisie" pour faire descendre la ligne 1 (de B4 à G14 uniquement) et incrémenté automatiquement une nouvelle ligne juste au dessus (de B4 à G14 uniquement)
la difficulté est qu'G14 il y a une formule, qu'il ne faudrait pas conserver en faisant descendre la ligne, mais conserver le résultat et que la formule reste pour le calcul sur la nouvelle ligne incrémenté.
Et inversement en cliquant sur le bouton "supprimer saisie".

Je ne sais pas comment faire, et j'ai tout un classeur à faire.
je vous joint une feuille, pour m'aider à comprendre ce qu'il faut faire.

en espérant avoir un peu d'aide.
a très bientôt de vous lire.
 

Pièces jointes

  • Classeur1.xlsx
    13.3 KB · Affichages: 31
  • Classeur1.xlsx
    13.3 KB · Affichages: 45

Papou-net

XLDnaute Barbatruc
Re : Incrémentation d'une ligne avec formule de calcul

Bonsoir Antony, et bienvenue sur XLD,

En PJ ton fichier complété d'une macro.

Cordialement.
 

Pièces jointes

  • Copie de Classeur Anthony34200.xlsm
    17.9 KB · Affichages: 45

ANTONY34200

XLDnaute Occasionnel
Re : Incrémentation d'une ligne avec formule de calcul

Bonjour,
Merci pour ta réponse rapide,
c'est exactement ça qu'il me faut. par contre, pourrais tu me détailler comment faire, pas à pas, que je puisse comprendre et refaire les manip STP
 

Papou-net

XLDnaute Barbatruc
Re : Incrémentation d'une ligne avec formule de calcul

Bonjour Antony,

Voici le code avec les commentaires détaillés pour chaque ligne:

Code:
Sub Bouton1_Cliquer()
Dim Lg As Integer 'variable qui récupère le n° de la dernière cellule remplie en colonne B

'Remonte la colonne B à partir de la dernière ligne (Rows.Count) et affecte son n° à Lg
Lg = Range("B" & Rows.Count).End(xlUp).Row

'Copie la plage B4:B et Lg et la colle en B5
Range("B4:G" & Lg).Copy Range("B5")

'Incrémente le n° en B4
Range("B4") = Range("B4") + 1

'Efface la plage C4:F4
Range("C4:F4").ClearContents

'Remplace la formule en G5 par son résultat
Range("G5") = Range("G5").Value

'Supprime la sélection engendrée par la copie du début
Application.CutCopyMode = False
End Sub
A noter que Rows.count récupère le nombre de lignes maxi d'un onglet, quelle que soit la version Excel utilisée. End(xlUp) remonte depuis la dernière cellule jusqu'à la première cellule remplie rencontrée, ce qui correspond à la dernière cellule remplie de la colonne concernée. L'instruction .Row récupère le n° de ligne de cette cellule.

A +

Cordialement.
 

ANTONY34200

XLDnaute Occasionnel
Re : Incrémentation d'une ligne avec formule de calcul

Merci pour ta réponse.

par contre, si je fait un copié coller du code (en modifiant les cellules) pour d'autres feuilles (que je n'ai pas mis dans mon exemple), ou coller le code ? quel manip je dois faire?
 

Papou-net

XLDnaute Barbatruc
Re : Incrémentation d'une ligne avec formule de calcul

Merci pour ta réponse.

par contre, si je fait un copié coller du code (en modifiant les cellules) pour d'autres feuilles (que je n'ai pas mis dans mon exemple), ou coller le code ? quel manip je dois faire?

Le code doit être copié dans la procédure Cliquer du bouton de commande de la feuille concernée.

Pour y accéder, clic droit sur le bouton... Affecter une macro...Nouvelle

La fenêtre VBA s'ouvre et se positionne sous la première ligne. C'est là que tu dois insérer le code.

A +

Cordialement.
 

ANTONY34200

XLDnaute Occasionnel
Re : Incrémentation d'une ligne avec formule de calcul

Après plusieurs essais, je ni arrive pas.

j'ai copier coller le code en modifiant les cellules voulu.
En cliquant sur le bouton, ça fonctionne mais sa me copie également les intitulés des colonnes ...
je ne comprend pas. je joint mon fichier réel. Il y a plusieurs onglets ... et je dois pouvoir faire incrémenté des lignes comme dans mon premier fichier.

Diplomes de A4 à D4
contrat de A4 à H4
Sit Pro de A4 à F4 sur un bouton et sur un autre bouton de H4 à L4
ATD de L7 à P7
pret de B4 à F4
greve de B5 à G5 sur un bouton et sur un autre bouton de I5 à K5
maladie de B5 à U5
mater de B5 à T5
at de B5 à V5
salaire de A4 à G4
cp de A10 à N10
CET de A12 à D12 sur un bouton et sur un autre bouton de F12 à K12

Merci d'avance pour tout aide
 

Pièces jointes

  • Suivie Agent.xlsx
    68 KB · Affichages: 33

ANTONY34200

XLDnaute Occasionnel
Re : Incrémentation d'une ligne avec formule de calcul

Re,
voila, j'ai refait le classeur en entier en format xlsm. j'ai essayé le code que tu m'as donné sur la feuille diplôme (la plus simple) et sa ne marche pas. je ne comprend pas pourquoi ...
pourrais tu me filer un coup de main STP.
 

Pièces jointes

  • suivie agent 1.xlsm
    74.4 KB · Affichages: 33

Papou-net

XLDnaute Barbatruc
Re : Incrémentation d'une ligne avec formule de calcul

Bonsoir Antony,

Ouh la, ton problème se complique fortement.

Vu qu'aucune feuille ne possède la même structure, il faut envisager une macro différente pour chaque onglet. Afin de faciliter la lecture et la maintenance du code, il est préférable de placer chaque macro dans le module de feuille correspondant. Ce que j'ai fait pour les 3 premières feuilles.

J'en profite pour te rappeler de bien observer les références des plages de cellules dans chaque procédure.

J'ai mis en commentaire les modifications que j'ai apportées à la macro Bouton1_Cliquer.

Je te laisse continuer sur les feuilles suivantes, tout en restant à ta disposition en cas d'impasse.

A +

Cordialement.
 

Pièces jointes

  • Copie de suivie agent 1-2.xlsm
    85.6 KB · Affichages: 33
  • Copie de suivie agent 1-2.xlsm
    85.6 KB · Affichages: 34

ANTONY34200

XLDnaute Occasionnel
Re : Incrémentation d'une ligne avec formule de calcul

Bonjour,
c'est super ce que tu es arrivé a faire.
j'ai essayer sur la feuille ATD, et comme par magie sa marche !! mais ça ne m'a pas conservé la formule ...
je désespère !! et sur la feuille pret, sa me dit de mettre a jour le classeur, je ne comprend pas
 

Pièces jointes

  • Copie de suivie agent 1-2.xlsm
    86.5 KB · Affichages: 32
  • Copie de suivie agent 1-2.xlsm
    86.5 KB · Affichages: 30

Papou-net

XLDnaute Barbatruc
Re : Incrémentation d'une ligne avec formule de calcul

Bonjour Antony,

Tu n'as pas encore prêté suffisamment attention aux références des plages de cellules.

Voici ton code modifié pour la feuille ATD:

Code:
Dim Lg As Integer, Cel As Range

Sub ATD_Bouton1_Cliquer()

Lg = Range("l" & Rows.Count).End(xlUp).Row
If Cells(Lg, "l") Like "Mois*" Then Lg = Lg + 1
Range("L7:P" & Lg).Copy Range("L8")
Range("L8:P8").Value = Range("L8:P8").Value
For Each Cel In Range("L7:P7")
  If Not Cel.HasFormula Then Cel.ClearContents 'Effacement de la cellule Cel si elle ne contient pas de formule
Next
Application.CutCopyMode = False
End Sub
et pour la feuille Pret:

Code:
Dim Lg As Integer, Cel As Range

Sub Pret_Bouton1_Cliquer()

Lg = Range("C" & Rows.Count).End(xlUp).Row
If Cells(Lg, "C") Like "Mois*" Then Lg = Lg + 1
Range("C4:G" & Lg).Copy Range("C5")
Range("C5:G5").Value = Range("C5:G5").Value
For Each Cel In Range("C4:G4")
  If Not Cel.HasFormula Then Cel.ClearContents 'Effacement de la cellule Cel si elle ne contient pas de formule
Next
Application.CutCopyMode = False
End Sub
Quelques précisions:

- Utilise "Like" au lieu de "=" pour l'incrémentation de Lg

- Insère ton code dans les modules de feuille au lieu des modules de code, sans oublier de les affecter aux boutons correspondants.

Ton fichier corrigé en PJ.

A +

Cordialement.
 

Pièces jointes

  • Copie 01 de suivie agent 1-2.xlsm
    88.8 KB · Affichages: 30

ANTONY34200

XLDnaute Occasionnel
Re : Incrémentation d'une ligne avec formule de calcul

Bonjour,
Merci pour toutes ces indications.
J'ai passer pas mal de temps sur mon fichier a chercher et modifié.
je ne dois pas être fait pour le paramétrage des boutons cliquer. je n'arrive a rien, a part m'énerver.
Si tu pouvais m’expliquer les codes à mettre sur chaque feuille, ce serait génial.
Merci d'avance.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS