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 !