Insertion de lignes par le biais d'un boutton

sandrine_nelly Messages postés 41 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 31 janvier 2008 - 29 janv. 2006 à 12:51
sandrine_nelly Messages postés 41 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 31 janvier 2008 - 1 févr. 2006 à 21:02
Bonjour à tous,

En direct de toulouse sous la neige, temps idéal pour se prendre la tete sur du VBA !!!!

J'ai un fichier excel pour lequel l'utilisateur peut insérer une ligne sur un onglet.
Cependant, cette ligne devra être insérée dans tous les onglets de ce classeur.
Pour gérer ce pb, mon idée est de créer un bouton "insérer une ligne" qui générerait l'insertion de ligne dans tous les onglets du classeur.
Quel code, je dois attacher à ce bouton pour que cela fonctionne ?

Merci d'avance

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 janv. 2006 à 14:17
Salut
Ta question est trop vaste. Il est rare que des réponses de programme tout fait te soient proposées.
Il faut que tu décompose tout ce que tu as à faire et de renseigner sur chaque méthode. Tu n'auras plus qu'à mettre bout à bout.
- Comment on insère un bouton
- Comment on met du code dedans pour que ça réagisse à un click
- Comment changer d'onglet / comment afficher un autre onglet
- Comment choisir l'emplacement de l'insertion (quelle ligne)
-> Recherche de fin de données dans une colonne ?
-> Comment fonctionne le repérage des lignes et colonnes (syntaxe)
- Comment insérer une ligne dans la page courant
-> Comment écrire dans une cellule de cette nouvelle ligne ?
-> Quelles sont les données que je vais écrire ?

La plupart de ces réponses se trouvent dans l'aide de Excel et dans la simplicité d'utilisation des macros :
- Tu lances l'enregistrement d'une macro
- Tu fais à la main l'action que tu voudras que ton programme fasse
- Arrête l'enregistrement de ta macro
- Va dans le menu Outils, Macros, Visual Basic editeur
- Dans les modules à gauche, il y aura celui dans lequel à été enregistrée ta manip
--> Tu n'as plus qu'à faire un Copier/Coller de ce code dans le code de ton bouton et la modifier pour pouvoir paramétrer son lieu d'insertion

Si tu as besoin d'aide, pose des questions plus ciblées.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
29 janv. 2006 à 14:44
Bonjour,
Cette macro insert un ligne avant la cellule A5 de toutes les feuilles (ici 3)

Sub AjouterLigne()
Dim ligne As Worksheet
For Each ligne In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
ligne.Range("A5").EntireRow.Insert
Next ligne
End Sub

jpleroisse

Si une Réponse vous convient, cliquez Réponse Acceptée.
0
sandrine_nelly Messages postés 41 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 31 janvier 2008
29 janv. 2006 à 14:55
merci jpleroisse, c'est exactement ce qu'il me faut.
0
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
30 janv. 2006 à 12:05
Salut,

je vois que jack a du mal à cerner le problème de la demoiselle.

Et pourtant, sa question me semble très claire :

"Pour gérer ce pb, mon idée est de créer un bouton "insérer une ligne" qui générerait l'insertion de ligne dans tous les onglets du classeur.
Quel code, je dois attacher à ce bouton pour que cela fonctionne ?"

Je reprends donc

Quel méthode utiliser pour inserer une ligne dans tous les onglets du classeur ?

La question est on ne peut plus claire.
La réponse tient donc en trois ligne, comme le dit JP.

J'ajouterais juste qu'au lieu d'utiliser un array, qui oblige a connaitre à l'avance le nom de toutes les feuiles du classeur, on pourra utiliser une boucle for each, qui permettra de faire le tour de toutes les feuilles :

Sub InsertLineInSheets
Dim sht as worksheet
Dim ligne as integer

ligne = activecell.row 'on récupère le numéro de ligne où inserer
For each sht in thisworkbook.sheets
sht.rows(ligne).insert ' et on insère dans chaque feuille
next
end sub

+++
K@lobit
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sandrine_nelly Messages postés 41 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 31 janvier 2008
1 févr. 2006 à 21:02
La demoiselle est aux anges d'avoir autant de réponses claires comme elle aime !!!

Merci [mailto:K@lobit K@lobit]
0
Rejoignez-nous