Copie de macro ds un classeur excel

Résolu/Fermé
domi7666 - 4 mai 2010 à 13:29
ccm81 Messages postés 10861 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 22 mai 2024 - 18 oct. 2010 à 16:11
bonjour

j'ai créé une macro "inserer un bloc de lignes" dans une feuille excel (feuil 1 classeur A) avec un bouton "inserer ligne"

lorsque je duplique cette feuille dans le meme classeur (feuille 2 classeur A) je retrouve bien mon bouton "insérer ligne"
mais
lorsque j'appui sur mon bouton de macro, ma macro insere le bloc de ligne dans ma feuille 1 classeur A

je souhaiterai que ma macro se cale sur la feuille active

Dim r As Byte
r = MsgBox(" Etes-vous sûr de vouloir insérer une ligne ? ", vbYesNo + vbQuestion, "Message avec 2 alternatives ")
If r = 6 Then
MsgBox " vous avez choisi de continuer. ", vbInformation, " Réponse quand tu cliques sur oui "
Rows("16:28").Select
Selection.Copy
Dim derlig As Integer
derlig = Range("a65536").End(xlUp).Row + 1
Worksheets("TEST (2)").Range("a" & derlig).EntireRow.Insert
Application.CutCopyMode = False
Range("A42").Select
Else
MsgBox " vous avez choisi d'arrêter. ", vbCritical, " Réponse quand tu cliques sur non "
End If
End Sub

j'ai beau retourner le sujet partout, je ne trouve pas ma réponse
merci d'avance pour votre aide,
A voir également:

3 réponses

Walter-Kum-Dorne Messages postés 35 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 29 novembre 2010 1
4 mai 2010 à 13:54
Salut,

Tu peux déjà vérifier si ca ne vient pas de la dénomination de ton TEST(2) dans cette ligne : Worksheets("TEST (2)").Range("a" & derlig).EntireRow.Insert
(je pense que tu t'en doute, mais il faut bien mettre le nom de ta feuille active pour que ca marche).

Ensuite si c'est pas ca, tu peux vérifier si ton bouton pointe bien sur la bonne macro (clic droit / affecter une macro et vérifier).

Si c'est encore une fois pas ca tu peux faire un truc un peu moins propre en ajoutant la ligne : sheets("nom de la feuille sur laquelle tu bosse").select

Sinon tu peux aussi regarder dans ta feuille si il y a pas un code qui définit une feuille comme feuille de travail.

Sinon il va falloir examiner ca de plus près.

A+
0
merci Walter-Kum-Dorne de ta réponse rapide

j'ai trouvé une réponse qui fonctionne tres bien

en insérant i = ActiveSheet.Name et en remplacant le nom de ma feuille par i



Dim r As Byte
r = MsgBox(" Etes-vous sûr de vouloir insérer une ligne ? ", vbYesNo + vbQuestion, "Message avec 2 alternatives ")
If r = 6 Then
MsgBox " vous avez choisi de continuer. ", vbInformation, " Réponse quand tu cliques sur oui "
Rows("16:28").Select
Selection.Copy
Dim derlig As Integer
derlig = Range("a65536").End(xlUp).Row + 1
i = ActiveSheet.Name
Worksheets(i).Range("a" & derlig).EntireRow.Insert
Application.CutCopyMode = False
Range("A42").Select
Else

MsgBox " vous avez choisi d'arrêter. ", vbCritical, " Réponse quand tu cliques sur non "
End If


End Sub


ca fonctionne tres bien, en espérant que cela puisse servir a d'autres
0
ccm81 Messages postés 10861 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 22 mai 2024 2 407
18 oct. 2010 à 16:11
une solution simple,
créer le bouton a l'aide de la boite à outils controles, et non Formulaire
clic-clic sur le bouton pour passer en mode edition VB
et y affecter le code de la macro
après duplication de la feuille le bouton et le code suivent dans la nouvelle feuille
NB. l'inconvénient, c'est qu'on a un 'code' par feuille, mais comme on ne l'écrit pas ...
0