Bonjour à tous,
Ca me dérange un peu de poster un sujet pour ma demande, mais je ne veux pas monopoliser une personne non plus ...
Voici un peu moins d'une semaine que je bidouille du code vba par rapport à un userform.
Et là, il m'arrive de créer des situations où l'utilisation de l'usf nécessite un "come back" dans l'exécution du code. J'ai donc trouvé une solution qui est la suivante :
Ceci est un extrait d'une exécution suite à un combobox change. La listbox va chercher des infos dans un tableau et les affiche sur 3 colonnes, bref.
Il peut cependant arriver que cette listbox soit vide, j'ai donc décidé de la masquer LstBComp1.Visible = False ainsi que des intitulés qui s'y rapportent et de déplacer la listebox suivante à sa place :
IntFormation1.Top = 120
LstBFormation1.Top = 132
(partie après Else If)
Chouette ça fonctionne ! Mais si je reviens sur la combobox et sélectionne une autre personne ayant des informations dans ListBComp1, les objets ne reprennent pas la position initiale et ces infos n'apparaissent pas !
J'ai testé Ctrl + Z mais ça n'annule pas la disparition de ma listbox.
Bon, bon, j'adapte à nouveau mon code en écrivant l'effet inverse au début de la procédure, c'est à dire afficher ListBComp1 et entrer les coordonnées de ListBFormation1. Yahoo ! Ca tourne comme sur des roulettes mais ...
Ma question est la suivante : Est-ce possible de n'avoir qu'une ou deux lignes qui me permettraient de ne pas avoir a entrer la "situation initiale" à chaque niveau de mon code en exécutant une sorte de retour en arrière ...
J'ai songé à Do Loop mais ça m'fait planter excel (j'm'y prends surement mal !)
Sinon, autre question tout à fait HS, j'ai lu qu'on pouvait placer des balises, qu'est-ce que c'est ? Comment les mettre ?
Merci d'avance pour vos réponses !
Ca me dérange un peu de poster un sujet pour ma demande, mais je ne veux pas monopoliser une personne non plus ...
Voici un peu moins d'une semaine que je bidouille du code vba par rapport à un userform.
Et là, il m'arrive de créer des situations où l'utilisation de l'usf nécessite un "come back" dans l'exécution du code. J'ai donc trouvé une solution qui est la suivante :
Code:
Dim TV As Variant, L As Long, C As Long
Target = CboPerso1
Set ShtS = Sheets("Polyvalence")
TV = ShtS.Range("A:A").Find(What:=Target).EntireRow.Value
LstBComp1.Clear
For C = 3 To 54
If TV(1, C) <> "" Then
LstBComp1.Visible = True
IntMachine1.Visible = True
IntPost1.Visible = True
IntNiv1.Visible = True
IntFormation1.Top = 174
LstBFormation1.Top = 186
LstBComp1.AddItem: L = LstBComp1.ListCount - 1
LstBComp1.List(L, 0) = Feuil3.Cells(1, C).MergeArea(1, 1).Value
LstBComp1.List(L, 1) = Feuil3.Cells(2, C).Value
LstBComp1.List(L, 2) = TV(1, C)
ElseIf LstBComp1.ListCount = 0 Then
LstBComp1.Visible = False
IntMachine1.Visible = False
IntPost1.Visible = False
IntNiv1.Visible = False
IntFormation1.Top = 120
LstBFormation1.Top = 132
End If
Next C
Ceci est un extrait d'une exécution suite à un combobox change. La listbox va chercher des infos dans un tableau et les affiche sur 3 colonnes, bref.
Il peut cependant arriver que cette listbox soit vide, j'ai donc décidé de la masquer LstBComp1.Visible = False ainsi que des intitulés qui s'y rapportent et de déplacer la listebox suivante à sa place :
IntFormation1.Top = 120
LstBFormation1.Top = 132
(partie après Else If)
Chouette ça fonctionne ! Mais si je reviens sur la combobox et sélectionne une autre personne ayant des informations dans ListBComp1, les objets ne reprennent pas la position initiale et ces infos n'apparaissent pas !
J'ai testé Ctrl + Z mais ça n'annule pas la disparition de ma listbox.
Bon, bon, j'adapte à nouveau mon code en écrivant l'effet inverse au début de la procédure, c'est à dire afficher ListBComp1 et entrer les coordonnées de ListBFormation1. Yahoo ! Ca tourne comme sur des roulettes mais ...
Ma question est la suivante : Est-ce possible de n'avoir qu'une ou deux lignes qui me permettraient de ne pas avoir a entrer la "situation initiale" à chaque niveau de mon code en exécutant une sorte de retour en arrière ...
J'ai songé à Do Loop mais ça m'fait planter excel (j'm'y prends surement mal !)
Sinon, autre question tout à fait HS, j'ai lu qu'on pouvait placer des balises, qu'est-ce que c'est ? Comment les mettre ?
Merci d'avance pour vos réponses !