Rajout d'un ligne en gardant la meme mise en forme

Bonjour,

je débute sous VBA mais j'avoue que je suis bloqué. Je recherche à ajouter une nouvelle ligne en fin de tableau tout en gardant la mise en forme de la ligne du dessus (conservation des formules, des listes déroulantes, etc...)

L'objectif est d'incrémenter un tableau de suivi des maladies. J'inscris un numéro matricule dans une boîte de dialogue qui me renvoie automatiquement vers les nom, prénom, service des salariés. J'aimerai conserver cette possibilité et faire en sorte que, lors d'un nouvel arrêt maladie, excel puisse me générer une nouvelle ligne sur le même "modèle" que la précédente.

Merci pour votre aide.

au départ j'avais fait cela mais pas de conservation des formules ou des mises en forme.

Private Sub CommandButton1_Click()

If TextBox1 = "" Or TextBox2 = "" Or TextBox2 = "jj/mm/aa" Or TextBox3 = "" Or TextBox3 = "jj/mm/aa" Or ComboBox1 = "" Or ComboBox2 = "" Then

MsgBox ("Veuillez remplir toutes les informations")

Else

If Sheets("Suivi Maladie").Range("B2") = "" Then

Sheets("Suivi Maladie").Range("B2") = TextBox1

Else

Sheets("Suivi Maladie").ListObjects(1).ListRows.Add

End If

dlt = Sheets("Suivi Maladie").Range("B500").End(xlUp).Row

Sheets("Suivi Maladie").Range("B" & dlt) = TextBox1.Value

TextBox2.Value = Format(TextBox2, "dddd dd mmmm yyyy")

Sheets("Suivi Maladie").Range("I" & dlt) = TextBox2.Value

TextBox3 = Format(TextBox3, "dddd dd mmmm yyyy")

Sheets("Suivi Maladie").Range("L" & dlt) = TextBox3.Value

Sheets("Suivi Maladie").Range("K" & dlt) = ComboBox1

Sheets("Suivi Maladie").Range("AB" & dlt) = ComboBox2

End Sub

Bonsoir,

le plus simple est d'insérer un tableau dans votre plage de donnés :

sélectionnez une cellule de votre plage, dans le menu Excel cliquez sur "insertion", puis sur le ruban coté gauche choisissez "Tableau".

Une fenêtre s'ouvre avec la taille de votre plage de données existante, cochez "Ma plage contient une ligne d'entête" et cliquez sur [OK] .

Voilà, votre plage est devenue un tableau Excel, anciennement appelé "Liste".

Pour quoi faire ceci ?

Tout simplement pour les avantages que cela procure :

Entrez un donnée sur la première ligne vide du tableau dans n'importe quelle colonne, et Ô miracle, la ligne est intégrée automatiquement au tableau avec recopie des formules ainsi que les liste de choix, et des mise en forme conditionnelles ou pas !

Cet ajout manuel peut très bien être fait par VBA, et du coup vous n'avez plus à vous occupez de la mise en forme ni des formules, juste ajouter les données sur la première ligne vide sous le tableau, dans les colonnes adéquates.

@ bientôt

LouReeD

Bonjour et merci pour cette solution.

Bonjour,

avez-vous essayé ? Cela vous convient ? Et bien je suis ravis pour vous !

@ bientôt

LouReeD

J'avoue que la solution ne correspond pas tout à fait à ce que je recherche. J'aimerai vraiment réussir à intégrer une ligne automatique en bas de mon tableau, en conservant les formules et les mise en forme de la ligne immédiatement au dessus et tout cela en VBA. Je cherche désespéramment

C'est la programmation de la ligne que vous cherchez ou c'est juste pour que les données soient présentées de la même façon ?

Si c'est une programmation pour le fait de programmer alors oui cette solution de tableau n'est pas adaptée à votre recherche.

Si c'est pour une mise en forme standardisée des données suite à l'ajout par code VBA de données alors elle est adaptée.

Voici un fichier exemple :

En fait une fois les données renseignées sur le USF, un clic sur valider et le code ne s'occupe que d'inscrire les données dans les bonnes colonnes de la première ligne vide sous le tableau, et Hop ! les mise en formes les formules se mettent en place automatiquement...

L'avantage ? Et bien vous pouvez simplement modifier les MFC et formules sur la première ligne du tableau, elles seront recopiées automatiquement sur l'ensemble de la colonne et vous n'avez pas à toucher au code VBA...

A vous de voir...

@ bientôt

LouReeD

Rechercher des sujets similaires à "rajout ligne gardant meme mise forme"