Hello,

Pour mon job, j'utilise un classeur Excel avec tous mes clients. J'ai besoin d'avoir un historique de ces clients (quelles actions effectuées avec le client dans le passé).

J'ai donc une ligne par client avec un bouton "Historique" devant. En cliquant sur le bouton, je crée une zone de texte (shape) dans laquelle viendront les infos. En recliquant sur le bouton, je la masque. Si je reclique sur le bouton, il doit la réafficher sans la créer puisqu'elle existe. Chaque zone de texte est nommée avec un identifiant unique.

Mon problème est que j'arrive à la créer et masquer mais pas à la réafficher, il veut la recréer et ça plante puisque le nom est déjà attribué. Mon code est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub showTextbox(p As String)
 On Error GoTo Handler
    ActiveSheet.Shapes(p).Select
 
    If ActiveSheet.Shapes(p).Visible Then
     ActiveSheet.Shapes(p).Visible = False
    End If
 
    Exit Sub
 
Handler:
    If ActiveSheet.Shapes(p).Visible = False Then
     ActiveSheet.Shapes(p).Visible = True
    Else
     drawTextbox (p)
    End If
 
End Sub
p = identifiant de la zone de texte.

Je suis vraiment pas doué en VB et c'est mes premiers pas (et certainement derniers...).

MERCI de votre aide, Google ne m'aide plus à ce stade.