VBA inserer les formules et format de la ligne identifiée

Bonjour à tous,

Je suis newbie sur VBA, c'est mon premier post ici, et je tente depuis hier de dupliquer une ligne identifiée, mais à ne garder que la mise en forme, les formules et les validations.

"Transversal_" est le titre de mon tableau, en dessous du titre il y a une ligne de titre, et donc je copie la ligne encore en dessous, insere une ligne, fais un copie spécial et croise les doigts. Et après plusieurs tâtonnements, voici le mieux que j'ai pu trouver :

Sub Ajout_Ligne_Transversal()

Dim L1_transversal As Integer

L1_transversal = Cells.Find(What:="Transversal_", LookAt:=xlWhole, SearchFormat:=False).Offset(2, 0).Row

Rows(L1_transversal).Insert Shift:=xlUp

Rows(L1_transversal + 1).Copy

With Rows(L1_transversal)

.PasteSpecial Paste:=xlPasteFormats

.PasteSpecial Paste:=xlPasteFormulas

.PasteSpecial Paste:=xlPasteValidation

End With

Application.CutCopyMode = False

End Sub

Ca fonctionne presque comme je voudrais, sauf que ca copie également les valeurs, et je n'arrive pas à comprendre pourquoi....

Merci d'avance pour vos réponses

Bonjour,

La méthode n'est sans doute pas la plus adéquate... Avec le fichier, on pourra t'indiquer quelle est la plus adéquate.

Cordialement.

Merci pour ta réponse.

Voici le fichier, j'aimerais que la macro me duplique la ligne 9, mais sans les valeurs

La solution vraiment la plus simple pour toi consiste à sélectionner ta plage A8:M9, tu bascules sur l'onglet Insertion et tu cliques sur Tableau, tu valides et ton tableau sera transformé en tableau Excel.

Tu vas ensuite sur l'onglet Outils de tableau- Création, et tu le renommes Transversal_.

Et tu n'auras plus rien à retoucher !

Dès que tu commenceras une saisie sous le tableau actuel, mettons en tapant une mention quelconque en A10, ton tableau va automatiquement intégrer la ligne 10 en la mettant au format de la ligne précédente, et y propager tout aussi automatiquement les listes de validation et les formules.

Tu n'as donc plus aucune opération à faire, tout se fera automatiquement.

Cordialement.

Merci bcp,

Ca répond en partie et ca m'a permis de me remettre en tête la notion de tableau que j'avais mis de coté.

Un de mes soucis, c'est qu'il y aura d'autres "blocs" du genre à la suite, et donc il est important d'inserer des lignes. Le doc est destiné à d'autres utilisateurs (donc j'ai envie d'automatiser), et sur d'autres blocs j'aurais besoin de remplir automatiquement certaines cellules, d'où mon envie de passer par les macros.

Si j'insere une ligne sous VBA après avoir créer mon tableau sous excel, il continue à tout me copier. Du coup j'ai essayé de rajouter une ligne pour vider le contenu, et encore echec (fichier joint).

Il faudrait peut etre que je passe en mode tableau sous VBA non ? Mes souvenirs sont flous, mais il me semble qu'il y a aussi une gestion VBA des tableaux, et qu'elle ne "communique" pas avec les tableaux réalisés directement sur excel, c'est ca ?

Evidemment, en copier-coller xlFormulas, tu colles également les valeurs quand il n'y a pas de formule...

Mais je te conseilles d'essayer le tableau Excel, car tout ce que tu as indiqué comme devant être reproduit, s'y reproduit automatiquement.

Indique s'il y a lieu un élément que tu n'aurais pas cité et qui échapperait à la chose.

Je ne suis pas partisan de faire du VBA pour du VBA, quand on obtient le même résultat sans rien écrire.

Bien sûr, on peut accéder à un tableau Excel par VBA, on peut y ajouter des lignes... Même, un tableau Excel étant nommé automatiquement par Excel (insertion d'un nom dans le classeur), ce nom est utilisable en VBA à l'instar d'un nom de plage correspondant à la partie données du tableau, (ce qui ne peut se faire directement sur Excel !)

Cordialement.

Merci beaucoup, j'ai réussi à mes fins en insérant (au bon endroit) une ligne via VBA.

Je comprends le "pas de VBA pour le VBA", mais en fait si j'essaie de développer cet outil, c'est qu'il devrait me faciliter la vie, mais aussi pour me former sur VBA.

J'aurais l'occasion de me plonger dans les tableaux VBA quand je tenterai d'automatiser le remplissage d'une base de donnée à partir de cet onglet finalisé, mais chaque chose en son temps

Cordialement

Ce qui s'avère formateur, c'est de faire en VBA ce qui ne peut être fait autrement, ou le faire autrement qu'on ne le fait sur Excel...

Rechercher des sujets similaires à "vba inserer formules format ligne identifiee"