Copie de macro ds un classeur excel

Résolu
domi7666 -  
ccm81 Messages postés 11033 Statut Membre -
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,

3 réponses

  1. Walter-Kum-Dorne Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
  2. domi7666
     
    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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