CheckBox

maval

XLDnaute Barbatruc
Bonjour,

Je recherche un code que si je coche mon CheckBox en cliquant sur une ville "Charpe" j'ouvre l'onglet qui correspond

Je vous remercie d'avance de votre aide

Cordialement

Maval
 

Pièces jointes

  • Classeur1111.xlsm
    62.1 KB · Affichages: 51

Papou-net

XLDnaute Barbatruc
Re : CheckBox

Bonsoir maval,

Si j'ai bien cerné le problème, voici ma solution :

Code:
Sub Selection()
  ActiveSheet.Shapes("Groupe_Num_Dept").Left = 75
  ActiveSheet.Shapes("Groupe_Num_Dept").Top = 90

 Dim n As Integer, Pref As String, Teste As String
 [AD23] = Mid(Application.Caller, InStr(Application.Caller, "-") + 1)
' ôter toutes les couleurs
For n = 1 To ActiveSheet.Shapes.Count - 3
ActiveSheet.Shapes(n).Fill.ForeColor.SchemeColor = 9
Next n
'  ci-dessous on colorie tous les dépt concernés en bleu
Select Case [AD23]


Case 22, 29, 35, 56     '(Bretagne)
ActiveSheet.Shapes("FR-22").Fill.ForeColor.SchemeColor = 4
ActiveSheet.Shapes("FR-29").Fill.ForeColor.SchemeColor = 4
ActiveSheet.Shapes("FR-35").Fill.ForeColor.SchemeColor = 4
ActiveSheet.Shapes("FR-56").Fill.ForeColor.SchemeColor = 4



End Select

On Error Resume Next
' et on colorie le dépt cliqué en vert


choix = Format(CStr([AD23]), "00")
ActiveSheet.Shapes("FR-" & choix).Fill.ForeColor.SchemeColor = 3

If ActiveSheet.CheckBox1.Value = True Then
  Pref = LTrim(Replace(ActiveSheet.Shapes("FR-" & choix).TextFrame2.TextRange.Characters.Text, vbLf, ""))
  Pref = LTrim(Mid(Pref, 3))
  Sheets(Pref).Activate
End If

End Sub
J'ai simplement ajouté les 5 dernières lignes sans autre modification du code.

Cordialement.

Edit : j'ai oublié de préciser qu'il est impératif que le texte des noms de préfectures dans les images soit absolument identique aux noms des onglets, ou vice et versa.
 
Dernière édition:

maval

XLDnaute Barbatruc
Re : CheckBox

Bonjour Papou-net

Simple et Nickel je te remercie beaucoup Papou.

J'aurai besoin d'un conseil. J'ai environ une trentaine de feuille sur mon classeur j’aimerai masquer toute les feuilles sauf la première et pouvoir les ouvrir lorsque je click dessus les villes correspondant.

Aurai tu une solution a mon problème?

Bonne journée

Maval
 

Pierrot93

XLDnaute Barbatruc
Re : CheckBox

Re,

eh bien, comme dit plus haut, avant l'activation tu rends visible la feuille.....
Code:
If ActiveSheet.CheckBox1.Value = True Then
  Pref = LTrim(Replace(ActiveSheet.Shapes("FR-" & choix).TextFrame2.TextRange.Characters.Text, vbLf, ""))
  Pref = LTrim(Mid(Pref, 3))
'ici tu rends visible la feuille.....   
Sheets(Pref).Activate
End If
 

maval

XLDnaute Barbatruc
Re : CheckBox

Re,

Si je met le code comme ceci.

Code:
If ActiveSheet.CheckBox1.Value = True Then
  Pref = LTrim(Replace(ActiveSheet.Shapes("FR-" & choix).TextFrame2.TextRange.Characters.Text, vbLf, ""))
  Pref = LTrim(Mid(Pref, 3))
'ici tu rends visible la feuille.....


With Sheets("Vannes")
    .Visible = xlSheetVisible
    .Activate
End With

Sheets(Pref).Activate
End If

Sa fonctionne que sur la feuille Vannes ?

@+
 

Pierrot93

XLDnaute Barbatruc
Re : CheckBox

Re,

bah oui forcement.... modifie ainsi :

Code:
If ActiveSheet.CheckBox1.Value = True Then
  Pref = LTrim(Replace(ActiveSheet.Shapes("FR-" & choix).TextFrame2.TextRange.Characters.Text, vbLf, ""))
  Pref = LTrim(Mid(Pref, 3))
'ici tu rends visible la feuille.....

With Sheets(Pref)
    .Visible = xlSheetVisible
    .Activate
End With

End If
 

maval

XLDnaute Barbatruc
Re : CheckBox

Bonjour

J'ai un petit souci avec mon code auquel Papou-Net et Pierrot mon aider a finaliser et que je remercie au passage.
Lorsque je masque les feuilles de mon classeur avec ce code:

Et celui ci sur la feuille"France"
Code:
Private Sub CommandButton1_Click()
If CommandButton1.Caption = "Masquer les feuilles" Then
    CommandButton1.Caption = "Afficher les feuilles"
    ' ici opérations à exécuter
Else

    CommandButton1.Caption = "Masquer les feuilles"
    ' ici opérations à exécuter
End If
masquer_démasquer
End Sub
Dans un module
Code:
Sub masquer_démasquer()
Dim oSh As Worksheet
Application.ScreenUpdating = False
   For Each oSh In ThisWorkbook.Sheets
      If oSh.Name <> "France" And oSh.Name <> "Fr_Régions" Then oSh.Visible = Not oSh.Visible
   Next oSh
Application.ScreenUpdating = True
End Sub

Aucun problème si je clic une ville de ma carte de France la feuille correspondant a la ville souvre avec ce code de Papou-Net:
Code:
If ActiveSheet.CheckBox1.Value = True Then
  Pref = LTrim(Replace(ActiveSheet.Shapes("FR-" & choix).TextFrame2.TextRange.Characters.Text, vbLf, ""))
  Pref = LTrim(Mid(Pref, 3))
'ici tu rends visible la feuille.....
With Sheets(Pref)
    .Visible = xlSheetVisible
    .Activate
End With

Sheets(Pref).Activate

Jusqu'ici tous va bien!
Mon problème si je veut masquer les feuilles que j'ai ouverte a l'aide de mon code je ne peut plus?
Si vous avais une idée je vous remercie d'avance

Cordialement

Maval
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : CheckBox

Re,

Mon problème si je veut masquer les feuilles que j'ai ouverte a l'aide de mon code je ne peut plus?

c'est du code ci-dessous dont tu parles ?

Code:
If oSh.Name <> "Accueil" And oSh.Name <> "recap" Then oSh.Visible = Not oSh.Visible

si c'est le cas, normal, masque ou démasque toutes les feuilles différentes de "Accueil" et "recap" selon leur état. Peut être nous indiquer qu'est ce qui ne va pas exactement...
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87