Insertion d'une ligne vierge avec formule

Bonjour,

je cherche à faire une VBA dans un tableau avec une centaine de colonne pleine de formule. Je saisi juste un numéro de sécurité sociale au début de mon tableau et des dates d'arrêts.

Pour l'instant mes lignes utilisées sont en haut du tableau et en bas j'ai des lignes avec mes formules mais sans informations saisi. Je voudrais pouvoir être dirigé directement sur ma 1ère lignes non saisi lorsque je clique sur un bouton

Je sais comment appliquer la VBA à un bouton, je sais aussi lui dire va sur cette cellule. Ce que je n'arrive pas à faire c'est de lui dire va sur la 1ère cellule vide (cellule avec liste déroulante) puisque ce n'est jamais la même. Voir au mieux lui dire de recréer la ligne entière à partir d'un modèle ainsi je n'aurais plus de ligne avec formule non utilisés dans mon tableau.

merci de votre aide et désolé si mon explication est un peu confuse.

Bonjour

Pourrais-tu joindre ton fichier, anonymisé au besoin ?

Bye !

Re-

je vous joint le tableau que j'ai vidé. Si c'est possible d'avoir deux-trois explications si vous arrivez à faire quelque chose. J'essaie de comprendre ce que je fais pour pouvoir le reproduire.

clepolux a écrit :

je vous joint le tableau que j'ai vidé.

Je ne vois aucun fichier joint.

Il doit être trop gros. Passe par http://www.cjoint.com.

Mais ne le vide pas complètement ...

Bye !

Excusez moi j'avais pas fais attention mon fichier était beaucoup trop gros pour passer, j'ai dû supprimer beaucoup de choses.

Donc ma question concerne les lignes de l'onglet suivi des arrêts


trop tard ^^ j'ai supprimer des onglets inutiles pour la question et enlever les 3/4 des lignes vides. Si ça va pas je le renverrais en entier via le lien.

En retour et sans bouton : dès que tu as fini une saisie complète, une nouvelle ligne se crée avec formules et formats.

Voir explications dans la macro.

Cela te convient-il ?

Bye !

Merci, ça fonctionne très bien dans le fichier extrait mais quand je transfert le code dans mon fichier il ne se passe plus rien...

Le principe est bien mais dans l'idéal je voudrais ne pas avoir à aller tout en bas de mon tableau (c'est un tableau en plusieurs exemplaire et sur certains j'ai plus de 500 lignes). Donc soit si il y a possibilité de faire apparaitre les lignes par le début du tableau soit un bouton du coup.

Je dois bien prendre cette partie? ou alors il y a peut être des éléments de nom à modifier que je n'ai pas vu :

Private Sub Worksheet_Change(ByVal Target As Range) [...]

Range("A5:CS5").Copy Range("A" & ln + 1)

End If

Application.EnableEvents = True

End Sub

Nouvelle version à tester.

La saisie des nouvelles données se fait désormais en ligne 6, aux colonnes A, C, D

Si tu veux transférer tout ça sur un nouveau fichier, il te faut :

• Sacrifier la ligne 5 avec formats et formules (à copier – coller depuis une autre ligne au besoin). Elle servira de modèle.

• Effacer les cellules A5, C5, D5 et autres cellules de la ligne 5 qui contiennent des données et non des formules

• Masquer la ligne 5

Mais tu peux aussi joindre ton nouveau fichier et je te le ferai.

OK ?

Bye !

Merci beaucoup je vais essayer, malheureusement mon fichier contient des informations de mes salariés je ne peux pas les communiquer. et j'ai 9 tableaux identiques à modifier.

Mais à force d'essayer je vais y arriver....

Re-bonjour,

c'est peut être un peu plus compliqué que je pensais. J'ai modifié la formule pour que la ligne exemple soit la 7 et la ligne qui se créer seule la 8.

J'ai mis une ligne juste avec formule en ligne 7 que j'ai dupliquer en ligne 8.

Je saisi ma colonne A, les colonnes C et D se génère automatiquement (RECHERCHE V).

Je vous joint la copie écran de ma formule dans excel, j'ai du mal faire quelque chose mais quoi?

Merci beaucoup

PS : mes lignes 5 et 6 contiennent des données masquées me servant pour des calculs.

Voila ce que j'ai fait :

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Not Intersect(Target, Range("A8:D8", Range("J8:K8"))) Is Nothing _

And Range("A8") <> "" Then 'Si on a validé une cellule de la ligne 6

'dans la colonne A,C,D

'et que ces cellules contiennent des données

Rows("8:8").Insert shift:=xlDown 'alors on insere une nouvelle ligne 6 et on y

Range("A7:CS7").Copy Range("A8") 'colle la copie de la plage cachée en ligne 5

'qui contient formules et formats.

End If

Application.EnableEvents = True

End Sub

Bonjour

Nouvelle version à tester.

Bye !

Re-bonjour,

je n'y arrive toujours pas je peux renvoyer un de mes fichiers sans n° sécu et me dire ou est mon erreur pour que je puisse faire les autres tableaux?

Nouvelle version

La macro que j’ai faite est une macro événementielle.

Il ne faut pas la mettre dans un module mais dans la feuille VBA attachée à la feuille à laquelle elle s’applique.

Pour ouvrir cette feuille VBA, tu fais un clic droit dans l’onglet de la feuille ‘’ Suivi des arrêts’’ et tu verras que tu as déjà une telle macro qui se lance lors d’un double clic.

OK ?

Bye !

C'est merveilleux ça fonctionne...

Est ce que je peux juste savoir à quoi correspond cette ligne, j'essaye juste de comprendre l'importance de la 1ère (A8:D8) et de la 2e selection (J8:K8) et pourquoi il n'y a pas E8:I8?

If Not Intersect(Target, Range("A8:D8", Range("J8:K8"))) Is Nothing _

Merci beaucoup

Bonjour,

Voici un code qui fonctionne parfaitement pour moi

Sub insertionLigne()
    With ActiveCell
        .EntireRow.Insert xlShiftDown 'Insert une ligne au dessus
        .EntireRow.Copy ' Copie la ligne active
        With .Offset(-1).EntireRow 'Passe les formats et formules à la ligne insérée
            .PasteSpecial xlPasteFormats
            .PasteSpecial xlPasteFormulas
        End With
        Application.CutCopyMode = False
    End With
End Sub

Steven

Merci steven1947 mais gmb à pas mal chercher pour m'aider je vais garder ce qu'il m'a donné. Maintenant que j'y suis arrivé.

Re-bonjour,

je suis de nouveau bloqué, la ligne que j'insère par le haut en ligne 8 est lié à cette formule :

=SOMME.SI.ENS('Suivi des arrêts'!$R$9:$R$21;'Suivi des arrêts'!$A$9:$A$21;A3;'Suivi des arrêts'!$G$9:$G$21;BASE!$L$7)

dans une autre page sauf que dès que j'insert une nouvelle ligne tout mes 9 deviennent 10! Comment faire?

Bonjour à tous

clepolux a écrit :

je suis de nouveau bloqué,

joins le fichier qui "bloque"...

Bye !

Bonjour,

Il s'agit de l'onglet recap absence 2016, cellule N3 par exemple.

Merci

Ayant déjà créer une ligne ça m'a tout décalé en ligne 10 dans les calculs mais mon but dans les autres tableau c'est que ça reste à 9.

Bonjour

Nouvelle version à tester.

Bye !

Rechercher des sujets similaires à "insertion ligne vierge formule"