Microsoft 365 Aller une donnée sur une autre feuille

  • Initiateur de la discussion Initiateur de la discussion FCMLE44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FCMLE44

XLDnaute Impliqué
Bonjour

Sur une nouvelle feuille de mon projet, j'ai repris un code qui m'avait gentiment été fait par une personne de ce site

je l'ai modifié pour l'adapter à la situation de cette nouvelle feuille
VB:
If Target.Address = "$D$18" Then
        Application.ScreenUpdating = False
        Range("1:290").EntireRow.Hidden = False
        Select Case Target.Value
        Case "Démission", "Fin de contrat Apprentissage", "Fin de contrat Professionnalisation", "Décès", "Licenciement Faute Grave", "Fin de Contrat à Durée Déterminée", "Licenciement Autres", "Rupture Conventionnelle"
            [232:290].EntireRow.Hidden = True
        End Select
    End If

mais la première partie n'est pas correcte
Code:
If Target.Address = "$D$18" Then

Je souhaite en effet qu'elle n'aille pas chercher la cellule D18 de cette deuille mais D18 de la feuille "Renseignements salariés"

Cordialement
 
Solution
Bonjour
Je pense que ça devrait correspondre.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    '****************************************** Sélection feuille Indemnité************************
    If Target.Address = "$D$21" Then
        If Target = "" Then Exit Sub
            Sheets("Feuille Calcul Indemnités").Select
    End If
A+ François
Bonjour
Visiblement cette macro se lance au changement dans une feuille
' Private Sub Worksheet_Change(ByVal Target As Range)
target étant la cellule qui vient de changer...
en l'absence d'un fichier il est dûr de t'aider (on est pas devin)
Tu veux aller chercher la cellule d18 de la feuille "Renseignements salariés" quand?
A+ François
 
Bonjour

Pour être plus clair, lorsque dans le menu déroulant en cellule D18 de la feuille "Renseignements salarié" indique Retraite(données reprises de la feuille Paramètres), il faut que les lignes 232 à 290 de la feuille courriers salariés soient masquées

Je vous fournis une partie de mon fichier réactualisé sans aucune donnée pour voir

Merci
 

Pièces jointes

Bonjour

Petit changement, cette partie de code ouvre une feuille du même nom que présent dans la cellule D21
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$21" Then
        If Target = "" Then Exit Sub
        If IsError(Evaluate("='" & Target.Value & "'!A1")) Then
            MsgBox "La feuille " & Target.Text & " n'existe pas !", , "Information"
        Else
            Sheets(Target.Value).Select
        End If
    End If

Aprés avancement sur mon projet, je souhaiterais que, peu importe la donnée y figurant, dès que la cellule D21 est non vide, l'on se rende sur la feuille "Feuille Calcul Indemnités"

Est ce possible et que modifier

Ci dessous code en entier
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$21" Then
        If Target = "" Then Exit Sub
        If IsError(Evaluate("='" & Target.Value & "'!A1")) Then
            MsgBox "La feuille " & Target.Text & " n'existe pas !", , "Information"
        Else
            Sheets(Target.Value).Select
        End If
    End If
    '****************************************** Masquer/afficher************************
   If Target.Address = "$D$18" Then
        Application.ScreenUpdating = False
        Sheets("Courriers Salariés").Range("28:28,232:289").EntireRow.Hidden = False
        Range("20:62,74:75").EntireRow.Hidden = False
        Select Case Target.Value
        Case "Démission"
            [20:23,41:62,74:75].EntireRow.Hidden = True
            Sheets("Courriers Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Fin de contrat Apprentissage", "Fin de contrat Professionnalisation", "Licenciement Faute Grave"
            [20:28,41:62,74:75].EntireRow.Hidden = True
            Sheets("Courriers Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Décès"
            [20:28,41:62,74:75].EntireRow.Hidden = True
            Sheets("Courriers Salariés").Range("232:289,28:28").EntireRow.Hidden = True
        Case "Fin de Contrat à Durée Déterminée"
            [20:28,46:62,75:75].EntireRow.Hidden = True
            Sheets("Courriers Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Licenciement Autres"
            [41:46,74:74].EntireRow.Hidden = True
            Sheets("Courriers Salariés").Range("232:289").EntireRow.Hidden = True
        Case "Retraite"
            [20:24,41:46,74:74].EntireRow.Hidden = True
        Sheets("Courriers Salariés").Range("28:28").EntireRow.Hidden = True
        Case "Rupture Conventionnelle"
            [25:28,41:46,74:74].EntireRow.Hidden = True
            Sheets("Courriers Salariés").Range("232:289").EntireRow.Hidden = True
        End Select
    End If
    '****************************************** Alerte Retraite************************
    If Target.Address(0, 0) = "D18" And UCase(Range("D18")) = "RETRAITE" Then
        mois = Month(Range("B17")) + 1
        If mois = 13 Then
         mois = 1
        an = Year(Range("B17")) + 1
    Else
        an = Year(Range("B17"))
    End If
        findemois = CDate("01/" & mois & "/" & an) - 1
    If Range("B17") <> findemois Then
    MsgBox ("Attention, un départ en retraite ne doit jamais avoir lieu au début ni même en cours de mois. Uniquement le dernier jour du mois. Merci, par conséquent de modifier la date de sortie en cellule B17. EN CAS D'INFORMATION CONTRAIRE, MERCI DE PRENDRE CONTACT AVEC VOTRE RESPONSABLE DE GROUPE")
      Range("B17") = ""
   End If
End If
End Sub
 
Bonjour
Je pense que ça devrait correspondre.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    '****************************************** Sélection feuille Indemnité************************
    If Target.Address = "$D$21" Then
        If Target = "" Then Exit Sub
            Sheets("Feuille Calcul Indemnités").Select
    End If
A+ François
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
805
Réponses
5
Affichages
942
  • Question Question
Microsoft 365 Protect/Unprotect
Réponses
18
Affichages
3 K
Retour