Bonjour à tous,
Je suis nouveau sur le forum j'aimerai vous solliciter pour de l'aide sur l'écriture d'une macro, domaine dans lequel je suis novice.
Le but de cette macro est de pouvoir insérer une ligne dans un tableau, en copiant la ligne du dessous en conservant la mise en forme et les formules mais en supprimant les valeurs.
Après quelques recherches et quelques bidouillages j'ai maintenant un code qui marche bien mais qui pose un souci.
Si il n'y a pas de valeurs dans la ligne que je copie, VBA me retourne un message d'erreur :"pas de cellules correspondantes", ce qui est plutôt logique. J'ai donc dû faire une deuxième macro pour effectuer simplement la copie sans la suppression des valeurs.
Mon but serait donc d'incorporer une condition dans le code pour grouper les deux macros (il détecte automatiquement si il y a des valeurs ou pas et exécute le bon code en conséquence) et ainsi avoir un seul raccourci ce qui fluidifierait grandement la chose.
Je vous mets les deux codes que j'utilisais jusqu'à présent :
Pour supprimer les valeurs :
Pour la simple copie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub InserLigne_L_() ActiveCell.EntireRow.Insert Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row) Range(Columns(1), Columns(9)).Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 3).ClearContents 'colonnes dans lesquelles je veux conserver les formules mais pas les valeurs Range(Columns(10), Columns(99)).Rows(ActiveCell.Row).ClearContents 'colonnes dans lesquelles je veux tout supprimer End Sub
Merci beaucoup pour votre aide en espérant que ma demande soit claire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub InserLigneVide_l_() ActiveCell.EntireRow.Insert Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row) End Sub
Partager