Macro s'applicant sur une autre feuille

Bonjour

J'utilise actuellement la macro ci dessous sur une meme feuille et elle fonctionne bien, cependant j'aimerais dissocier la feuille ou j'ai la macro de la feuille d'écriture, à savoir le "A13:A197" le mettre en feuille 2

 Private Sub Worksheet_Change(ByVal Target As Range)
            If Target.Address = "$B$2" And Target.Value <> "" Then
            Me.Cells(Application.Match(Me.Range("A2"), Me.Range("A13:A197"), 0) + 12, 2) = Target.Value
        End If
    End Sub

Comment puis je faire ?

Merci

Bonjour Lapatate,

Si je comprend bien, dans ta FeuilX tu as le code, et tu aimerais utiliser le même code pour la Feuil2, etc...?

Si c'est bien cela, tu peux peut être essayer la méthode suivante:

Placer le code suivant dans un module

Public sub maMacro(Byval Target as Range)
 If Target.Address = "$B$2" And Target.Value <> "" Then
   Me.Cells(Application.Match(Me.Range("A2"), Me.Range("A13:A197"), 0) + 12, 2) = Target.Value
End If
End Sub

Et dans tes Feuilles, remplacer:

 Private Sub Worksheet_Change(ByVal Target As Range)
            If Target.Address = "$B$2" And Target.Value <> "" Then
            Me.Cells(Application.Match(Me.Range("A2"), Me.Range("A13:A197"), 0) + 12, 2) = Target.Value
        End If
    End Sub

par

Private Sub Worksheet_Change(ByVal Target As Range)
            Call maMacro(Target)
    End Sub

Salut,

Autre approche, si tu souhaites conserver le code dans la feuille 1 et afficher le résultat sur la feuille 2 :

Sheets("Feuil2").Cells(Application.Match(Me.Range("A2"), Sheets("Feuil2").Range("A13:A197"), 0) + 12, 2) = Target.Value

Là tu remplaces "Me" qui désigne la feuille active par Sheets("Feuil2") pour envoyer le résultat sur la feuille 2 ou toute autre feuille de la collection Sheets.

A+

Ca ne marche pas

Mais en somme, actuellement sur la Fred,

En A2 j'ai une date que je rentre manuellement

En B2 je rentre une valeur numérique qui est ensuite retranscrite plus bas en fonction de A13:A197 (qui correspond a un calendrier)

Mais je voudrais rentrer ma date et ma valeur numérique sur la feuille Pointage, et que la retranscription se fasse sur la Fred.

Je joint le classeur

8projet-h-v1.xlsm (289.93 Ko)

Il faut donc que tu mettes ton code dans la feuille pointage, comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$2" And Target.Value <> "" Then
    Sheets("FRED").Cells(Application.Match(Me.Range("A2"), Sheets("FRED").Range("A13:A197"), 0) + 12, 2) = Target.Value
  End If
End Sub

Attention, dans l'exemple que tu as envoyé, ta plage va bien plus loin que la ligne 197.

Super !

Je te remercie ca marche nickel.

Et oui je sais pour la plage, c'est actuellement une ébauche a la base d'un fichier que j'ai modifié.

Autres questions tant que j'y suis :

-D'une part, comment faire pour ajouter une condition supplémentaire d'écriture, je m'explique, comme j'ai la date dans un menu déroulant, mettre en déroulant "ETUDES ; CABLAGE ; MAGASINAGE ; DIVERS" afin que quand je sélectionne telle ou telle tâche, ca aille dans la colonne qui aille bien. En ademetant qu'on mette la tache en G2 de la feuille pointage

- pareil qu'au dessus, mais en rajoutant cette fois ci dans un menu déroulant, une condition de feuille d’écriture, pour choisir Fred, ou une autre feuille correspondant a un employé ? en H2

Merci

Rechercher des sujets similaires à "macro applicant feuille"