sandrine_nelly
Messages postés41Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention31 janvier 2008
-
29 janv. 2006 à 12:51
sandrine_nelly
Messages postés41Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention31 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 ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 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.
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 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
Vous n’avez pas trouvé la réponse que vous recherchez ?