choix feuille selon valeur cellule

cisco38

XLDnaute Nouveau
bonjour
je souhaiterais copier les valeurs des cellules selon la valeur de la cellule E3
SI E3=SIE copier dans tableau de suivi SIE et si E3=CAR dans tableau de suivi CAR
 

Pièces jointes

  • fiche inter V1.xlsm
    55.5 KB · Affichages: 51

Hervé

XLDnaute Barbatruc
Re : choix feuille selon valeur cellule

salut

peut être comme ceci (je t'ai commenté le code) :

Code:
Dim OD As Worksheet 'Onglet de Destination
Dim lign As Variant

Select Case Range("e3") 'on teste la cellule E3
    Case "": MsgBox "Merci de completer la cellule E3": Exit Sub 'si vide, message +sortie de procédure
    Case "SIE": Set OD = Sheets("tableau de suivi SIE") 'si SIE, on initialise la variable objet od avec la feuille correpondante
    Case "CAR": Set OD = Sheets("tableau de suivi CAR") 'idem pour CAR
End Select


lign = OD.Range("A65000").End(xlUp).Row 'on recherche la derniere ligne non vide

a plus
 

cisco38

XLDnaute Nouveau
Re : choix feuille selon valeur cellule

faut il modifier tableau de suivi SIE par OD
merci deja pour l'aide
Private Sub BtnCopier_Click()
Dim OD As Worksheet 'Onglet de Destination
Dim lign As Variant

Select Case Range("e3") 'on teste la cellule E3
Case "": MsgBox "Merci de completer la cellule E3": Exit Sub 'si vide, message +sortie de procédure
Case "SIE": Set OD = Sheets("tableau de suivi SIE") 'si SIE, on initialise la variable objet od avec la feuille correpondante
Case "CAR": Set OD = Sheets("tableau de suivi CAR") 'idem pour CAR
End Select


lign = OD.Range("A65000").End(xlUp).Row 'on recherche la derniere ligne non vide





If Sheets("Demande de travaux").Range("T2").Value <> Sheets("tableau de suivi SIE").Range("A" & lign).Value And Sheets("tableau de suivi SIE").Range("A" & lign).Value <> "" Then


Sheets("tableau de suivi SIE").Range("A" & lign + 1).Value = Sheets("Demande de travaux").Range("T2").Value
Sheets("tableau de suivi SIE").Range("B" & lign + 1).Value = Sheets("Demande de travaux").Range("K4").Value
Sheets("tableau de suivi SIE").Range("C" & lign + 1).Value = Sheets("Demande de travaux").Range("K43").Value
Sheets("tableau de suivi SIE").Range("D" & lign + 1).Value = Sheets("Demande de travaux").Range("E3").Value
Sheets("tableau de suivi SIE").Range("E" & lign + 1).Value = Sheets("Demande de travaux").Range("K3").Value
Sheets("tableau de suivi SIE").Range("F" & lign + 1).Value = Sheets("Demande de travaux").Range("R3").Value
Sheets("tableau de suivi SIE").Range("G" & lign + 1).Value = Sheets("Demande de travaux").Range("E4").Value
Sheets("tableau de suivi SIE").Range("H" & lign + 1).Value = Sheets("Demande de travaux").Range("R4").Value
Sheets("tableau de suivi SIE").Range("I" & lign + 1).Value = Sheets("Demande de travaux").Range("A21").Value
Sheets("tableau de suivi SIE").Range("J" & lign + 1).Value = Sheets("Demande de travaux").Range("A35").Value
Sheets("tableau de suivi SIE").Range("K" & lign + 1).Value = Sheets("Demande de travaux").Range("M19").Value
Sheets("tableau de suivi SIE").Range("L" & lign + 1).Value = Sheets("Demande de travaux").Range("S19").Value

Else: MsgBox "Le N° de Fiche deja utilisé-creer nouvelle fiche avant !"
End If
End Sub
 

Hervé

XLDnaute Barbatruc
Re : choix feuille selon valeur cellule

re :)

oui, maintenant ta feuille de destination est défini par la variable OD, donc tu remplaces comme ceci :

Code:
Private Sub BtnCopier_Click()
Dim OD As Worksheet 'Onglet de Destination
Dim lign As Variant

Select Case Range("e3") 'on teste la cellule E3
    Case "": MsgBox "Merci de completer la cellule E3": Exit Sub 'si vide, message +sortie de procédure
    Case "SIE": Set OD = Sheets("tableau de suivi SIE") 'si SIE, on initialise la variable objet od avec la feuille correpondante
    Case "CAR": Set OD = Sheets("tableau de suivi CAR") 'idem pour CAR
End Select


lign = OD.Range("A65000").End(xlUp).Row 'on recherche la derniere ligne non vide
    
With Sheets("Demande de travaux")
    If .Range("T2").Value <> OD.Range("A" & lign).Value And OD.Range("A" & lign).Value <> "" Then
        OD.Range("A" & lign + 1).Value = .Range("T2").Value
        OD.Range("B" & lign + 1).Value = .Range("K4").Value
        OD.Range("C" & lign + 1).Value = .Range("K43").Value
        OD.Range("D" & lign + 1).Value = .Range("E3").Value
        OD.Range("E" & lign + 1).Value = .Range("K3").Value
        OD.Range("F" & lign + 1).Value = .Range("R3").Value
        OD.Range("G" & lign + 1).Value = .Range("E4").Value
        OD.Range("H" & lign + 1).Value = .Range("R4").Value
        OD.Range("I" & lign + 1).Value = .Range("A21").Value
        OD.Range("J" & lign + 1).Value = .Range("A35").Value
        OD.Range("K" & lign + 1).Value = .Range("M19").Value
        OD.Range("L" & lign + 1).Value = .Range("S19").Value
        
    Else: MsgBox "Le N° de Fiche deja utilisé-creer nouvelle fiche avant !"
    End If
End With
End Sub

autre chose, ton USF avec le module de classe pour le calendrier, chez moi il ne s'ouvre pas avec les bonnes dates, je dois changer de mois et revenir pour qu'il s'actualise.

a plus

edit : patience, je mangeais ma pizza à la betterave sucrière
 

cisco38

XLDnaute Nouveau
Re : choix feuille selon valeur cellule

Oui c'est exact , mais si solution a mon probleme resolu ailleurs je reporte ici afin d'aider d 'autre personne dans le meme cas.

Il y a plus d'idee dans deux tete que dans une seule.
La preuve c'est que tu recherche aussi ailleurs puique tu a vu ma demande ailleurs
 
Dernière édition:

cisco38

XLDnaute Nouveau
Re : choix feuille selon valeur cellule

voici ma solution je ne sais pas si on peu faire autrement mais ça fonctionne
Code:
With Sheets("Demande de travaux")

    [COLOR=#ff0000]If .Range("T2").Value <> .Range("V2").Value Then[/COLOR]
    
        OD.Range("A" & lign + 1).Value = .Range("T2").Value
        OD.Range("B" & lign + 1).Value = .Range("K4").Value
        OD.Range("C" & lign + 1).Value = .Range("K43").Value
        OD.Range("D" & lign + 1).Value = .Range("E3").Value
        OD.Range("E" & lign + 1).Value = .Range("K3").Value
        OD.Range("F" & lign + 1).Value = .Range("R3").Value
        OD.Range("G" & lign + 1).Value = .Range("E4").Value
        OD.Range("H" & lign + 1).Value = .Range("R4").Value
        OD.Range("I" & lign + 1).Value = .Range("A21").Value
        OD.Range("J" & lign + 1).Value = .Range("A35").Value
        OD.Range("K" & lign + 1).Value = .Range("M19").Value
        OD.Range("L" & lign + 1).Value = .Range("S19").Value
       [COLOR=#ff0000].Range("V2").Value = .Range("T2").Value[/COLOR]
 Else: MsgBox "Le N° de Fiche deja utilisé-creer nouvelle fiche avant !"
 

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345