merci,Bonjour,
Faites glissez (vers la droite ) votre onglet (sur son nom en bas) en maintenant la touche contrôle. Votre feuille sera copiée telle quelle avec son tableau.
Cordialement
????peut on le faire dans une liste déroulante du 'contrôle des formules' ??
Le but est d'avoir un choix deroulant avec la mise en forme (couleur) de mon tableau initial????
Je ne vois pas de quoi vous parlez : 'contrôle des formules' ?
Quel est le but final ?
Arf...arf... C'est 'Contrôles de Formulaires' pas de Formule...'controle de formule' est dans l'onglet developpeur ou souvent on y affecte une macro
desolé pour le mauvais terme !!Arf...arf... C'est 'Contrôles de Formulaires' pas de Formule...
Sauf à construire une usine à gaz(chose que je ne ferai pas) faisant intervenir moultes API windows ou moultes pirouettes programmatiques vous n'aurez pas de liste respectant pour chaque item les formats et couleurs de votre liste de feuil1
Cordialement
Private Sub Worksheet_Change(ByVal Target As Range)
Dim idx As Variant
On Error GoTo FIN
Application.EnableEvents = False ' important
'
' Si une seule cellule a changé et quelle est dans la zone nommée 'EnCours'
If Target.CountLarge = 1 And Not Intersect(Target, Range("EnCours")) Is Nothing Then
' Chercher la correspondance dans le tableau T_Chantiers
idx = Application.Match(Target.Text, Feuil1.Range("T_Chantiers[Chantiers]"), 0)
' Non trouvé, on met le style normal
If IsError(idx) Then
Target.Style = "Normal"
Else
' Sinon on importe le format
Feuil1.Range("T_Chantiers[Chantiers]").Cells(idx, 1).Copy
Target.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End If
End If
FIN:
Application.EnableEvents = True
End Sub
c'est génial cette macro, merci beaucoupRe,
Alors testez ceux-ci.
Feuil2!B3:B15 est une zone nommée "Encours", dans cette zone une liste de validation vous permet de choisir un chantier. Lorsque la cellule change, le format correspondant est récupéré à partir de la feuille Feuil1.
cordialementVB:Private Sub Worksheet_Change(ByVal Target As Range) Dim idx As Variant On Error GoTo FIN Application.EnableEvents = False ' important ' ' Si une seule cellule a changé et quelle est dans la zone nommée 'EnCours' If Target.CountLarge = 1 And Not Intersect(Target, Range("EnCours")) Is Nothing Then ' Chercher la correspondance dans le tableau T_Chantiers idx = Application.Match(Target.Text, Feuil1.Range("T_Chantiers[Chantiers]"), 0) ' Non trouvé, on met le style normal If IsError(idx) Then Target.Style = "Normal" Else ' Sinon on importe le format Feuil1.Range("T_Chantiers[Chantiers]").Cells(idx, 1).Copy Target.PasteSpecial xlPasteFormats Application.CutCopyMode = False End If End If FIN: Application.EnableEvents = True End Sub