Utiliser une liste pour faire un userform

Ranipet

XLDnaute Junior
Bonjour à tous,

J'essaie de me remémorer mes vieux restes de VBA et j'avoue que j'ai beaucoup de mal :(
Actuellement ma macro copie le contenu de la colonne B de l'onglet List en B25 de l'onglet Evolution mais j'aimerais qu'elle fasse apparaître un userform permettant de cocher ou décocher les éléments que l'on souhaite voir dans l'onglet Evolution.

Les D25:F27 devront aussi être remplis par la macro mais ça fera l'objet d'un autre topic:D

Le fichier est visualisable ici (20,6 ko)


Merci pour votre aide qui me sera précieuse.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utiliser une liste pour faire un userform

Bonjour Ranipet, bonjour le forum,

En pièce jointe ton fichier modifié (code commenté). Tu aurais pu au moins faire l'effort de créer l'Userform Feignasse !!!
 

Pièces jointes

  • Ranipet_v01.xls
    94 KB · Affichages: 104

Martini

XLDnaute Junior
Re : Utiliser une liste pour faire un userform

Bonjour Ranipet, bonjour le forum,
Re :)

En pièce jointe ton fichier modifié (code commenté). Tu aurais pu au moins faire l'effort de créer l'Userform Feignasse !!!
C'est vrai. Mais j'étais quand même pas mal perdu, assez pour pas savoir quel type d'userform créer.
Et puis toi tu m'as viré une variable, ce qui faisait foirer le graphique :p

A part ça c'est pas mal du tout. Une question :
- Est-ce qu'il est possible de cocher toutes les cases par défaut ?


(J'ai un second compte)
 

James007

XLDnaute Barbatruc
Re : Utiliser une liste pour faire un userform

Bonjour,

C'est possible en rajoutant le code suivant :
Code:
Private Sub UserForm_Initialize()
Dim x As Integer
With Sheets("List")
Me.ListBox1.List = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Value
 For x = 0 To ListBox1.ListCount - 1
    Me.ListBox1.Selected(x) = True
 Next x
End With
End Sub

A +
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utiliser une liste pour faire un userform

Bonsoir le fil, bonsoir le forum,

Ranipet/Martini merci d'avoir pris mon intervention avec humour (ça avait la prétention d'en être en effet).
Mais je me permets de rajouter que je n'ai rien viré du tout à ton code (à part les lignes du copier/coller) ! Ton fichier original plantait déjà pour le graphique...
 

Ranipet

XLDnaute Junior
Re : Utiliser une liste pour faire un userform

Chers lecteurs, bonjour !

Robert tu as viré cette ligne dans le bloc du copier/coller :
finlist = Sheets("List").Range("A65536").End(xlUp).Row

Or, finlist me servait (et me sert à nouveau d'ailleurs) à déclarer la plage de données du graphique :
ActiveChart.SetSourceData Source:=Range(Cells(24, 3), Cells(24 + finlist, 3 + i))

Et mon fichier original ne plantait pas pour le graphique :p
 

Ranipet

XLDnaute Junior
Re : Utiliser une liste pour faire un userform

re,

Question d'ordre plus général sur VBA : Pour arrêter la macro lorsque l'on clique sur Annuler, j'ai utilisé ce code :
Code:
Private Sub CommandButton2_Click() 'bouton "Annuler
    End
End Sub

Est-ce que ça pose un problème aux puristes ou je peux le laisser comme ça ?

EDIT : Comment faire pour arrêter l’exécution de la macro quand on ferme l'userform avec la croix ?

Merci pour votre aide.
 
Dernière édition:

James007

XLDnaute Barbatruc
Re : Utiliser une liste pour faire un userform

Bonjour,

L'instruction End est adéquate ...

Pour gérer la croix qui permet de fermer ta UserForm, il te faut :
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
'  ton code ...
End Sub

A +
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utiliser une liste pour faire un userform

Bonjour le fil, bonjour le forum,

Ranipet tu as raison le fait d'avoir supprimé une variable aurait fait planter ton fichier. Mais je persiste et signe il plantait déjà avant !!!! Comme il est toujous accessible dans ton premier post, tu le télécharges, tu l'ouvres et tu cliques sur le bonton Execute. S'il ne plante pas, comme on dit à Sète, je mange un rat !. Le bug est sur la ligne :
Code:
ActiveSheet.Shapes.AddChart.Select
Juste avant celle où, en effet, il aurait planté à cause de la variable que j'avais supprimée...
 

Ranipet

XLDnaute Junior
Re : Utiliser une liste pour faire un userform

Bonjour à tous,

Tu manges un rat s'il plante chez moi ou chez toi ?
Je pose la question parce qu'il ne plante pas chez moi...:p


Sérieusement, qu'est-ce qui fait qu'il tourne correctement chez moi et pas chez toi ?
C'est une fonction de 2007 non rétro-compatible ? :confused:


@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utiliser une liste pour faire un userform

Bonjour le fil, bonjour le forum,

As-tu bien retéléchargé le fichier ou ouvres-tu le tien sur ton PC ? J'avoue que je n'ai pas d' explication car je comprends pas bien la ligne qui plante... Mais le code veut, je pense, sélectionner un graphique et il n'y a aucun graphique dans le fichier en pièce jointe...

Toutefois, je dois avouer que si j'avais vraiment bouffé tous les rats que j'avais annoncé j'en serais au moins à mon quatrième...
 

Ranipet

XLDnaute Junior
Re : Utiliser une liste pour faire un userform

Bonjour le fil, bonjour le forum,

As-tu bien retéléchargé le fichier ou ouvres-tu le tien sur ton PC ? J'avoue que je n'ai pas d' explication car je comprends pas bien la ligne qui plante... Mais le code veut, je pense, sélectionner un graphique et il n'y a aucun graphique dans le fichier en pièce jointe...

Toutefois, je dois avouer que si j'avais vraiment bouffé tous les rats que j'avais annoncé j'en serais au moins à mon quatrième...

J'ai bien re-téléchargé le fichier.
Il ne sélectionne pas un graphique mais en RAJOUTE un : ActiveSheet.Shapes.AddChart.Select
(Ca sort de l'enregistreur de macros)


Pour gérer la croix qui permet de fermer ta UserForm, il te faut :
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
'  ton code ...
End Sub

Re,

Je reviens sur ce que j'ai dit : ça ne fonctionne pas. Cela arrête l'exécution de la macro dès que je ferme l'usf (y compris en appuyant sur Ok) :(
 
Dernière édition:

James007

XLDnaute Barbatruc
Re : Utiliser une liste pour faire un userform

Manifestement quelque chose m'échappe ... je croyais que c'était justement ton objectif ...

Tout dépend de l'action recherchée et donc du code que tu as inséré ...

Peux-tu nous éclairer sur ces deux points ...
 

Statistiques des forums

Discussions
312 764
Messages
2 091 869
Membres
105 084
dernier inscrit
lca.pertus