Listbox et macro

Bonjour tous

J'ai besoin d'une aide pour compléter une list box multiselection dans un user form tout est expliqué dans le fichier

Merci encore

17classeur1.zip (14.21 Ko)

Salut,

Dans le fichier ci-joint, tu vois comment tu pourrais lancer diverses macros en fonction de la valeur choisie dans ta ListBox. Tu cliques sur ton bouton, tu choisis une date et la macro correspondante pourrait être lancée après que tu aies cliqué sur le bouton ‘CommandButton1’.

Ton autre problème est également résolu

Cordialement.

25classeur1-v1.zip (18.54 Ko)

Merci Yvouille Sinon pendant que je t'ai sous la main j'ai des problème avec une formule matricielle quand je veux la mettre en format macro ça donne pas du tout le résultat escompté.

Ci joint le fichier concerné

Merci de ton aide

6classeur1.zip (6.86 Ko)

Salut stepaustras,

Mes propositions pour tes deux précédents problèmes étaient vraiment nulles que tu ne m'en parles même pas ???

Amicalement.

Quelle deux problèmes ? Il y a juste la list box qui me convient mais comme le sujet était abandonné un peu et que la list box je sais pas trop si je la mettrais dans mon projet je préfère que tu me soluce l'autre truc et en faite aussi c'est que je ne pourrais pas faire de multi sélection avec mon fichier ou alors une list box avec une sélection à la fois mais j'avais déjà vu un tuto sur youtube sur des listes box simple.

Mais comme mon fichier est loin d'être fini je le garderais pour plus tard mettre une liste box pour finaliser

Tu as posé tes deux précédents problèmes d’une manière un peu compliquée et même toi tu ne sembles plus t’en sortir

Au lieu d’indiquer tes deux demandes sur ton fil, tu as expliqué une partie des problèmes sur ton fil et une autre partie dans un fichier.

Pour rafraîchir ta mémoire, tu as demandé 1) comment déclencher une macro à chaque fois différente en fonction de l’élément choisi de ta ListBox et 2) comment rester sur la Feuil1 après la macro.

Comme tu n’avais pas indiqué clairement - en marquant ton fil comme ‘Résolu’ - que tu n'avais plus besoin de secours, je t’ai offert de mon temps afin de t’aider à résoudre tes soucis.

Si tu trouves maintenant que mon cadeau n’a aucune valeur, je te conseille de trouver quelqu’un d’autre pour la suite. Tu m’as ''sous la main'', mais il y a des limites.

Chaleureusement.

Yvouille a écrit :

Tu as posé tes deux précédents problèmes d’une manière un peu compliquée et même toi tu ne sembles plus t’en sortir

Chaleureusement.

ça c'est bien vrai

Désolé si je t'ai froissé mais comme tu l'as dis je suis dépassé tellement il y a des trucs qui ne fonctionnent pas je laisse un truc pour en reprendre un autre tous ça sur le même fichier et je suis toujours au même point

Bon dimanche et bonne nuit

PS: et encore merci pour ton aide et la liste box

Salut,

La macro mise en place dans le fichier ci-joint devrait répondre à ta troisième demande.

Amicalement.

20classeur1-v1.zip (13.78 Ko)

Merci Yvouille ça fonctionne un peu mieux j'ai la moitié plein et l'autre vide et me demande si c'est pas dans mon code qu'il y a un truc qui cloche a savoir que mon code est comme ça

dl = Sheets("IndexCourse").Range("c" & Rows.Count).End(xlUp).Row

    Sheets("Index").Range("E1:E" & dl).Formula = "=VLOOKUP(RC[-2],INDIRECT(""'""&RC[-4]&""'!B:G""),6,0)"

    Sheets("Index").Range("E1:E" & dl).Copy

    Sheets("Index").Range("E1:E" & dl).PasteSpecial xlPasteValues

    Sheets("Index").Columns("E").Replace "Descriptif", ""

    Sheets("Index").Columns("E").Replace 0, ""

'Rajoute nombre max de nom

    Range("G2").FormulaArray = _
    "=MAX(IF(RC[-6]:R[198]C[-6]=RC[-6],RC[-5]:R[198]C[-5],""""))"
Range("G2").AutoFill Destination:=Range("G2:G32"), Type:=xlFillDefault

Rows(1).Delete

Autant pour moi ça fonctionne j'avais pas vu le G2:G32 me disais pourquoi que la moitié car j'ai plus de ligne par contre j'ai le code est il possible d'adapter au nombre de ligne pleine car j'ai mis A2:A200 mais en faite c'est variable et j'avais essayé le même code celui là

FormulaArray = "=MAX(IF(RC[-6]:R[198]C[-6]=RC[-6],RC[-5]:R[198]C[-5],""""))"

mais au format de ce que j'ai mis en haut et ça me mettais que le chiffre max du premier nom sur toute la colonne

Et je me demande si les formules matricielles codées en VBA aiment les copier coller en faite c'est ça qui cloche

Re,

Tes discussions sont un peu des soliloques et comme tu ne fournis pas ton fichier réel, il est ardu de comprendre où tu veux en venir.

L’enregistreur de macros est un outil fantastique, mais il faut bien entendu par la suite travailler les codes ainsi créés.

Selon moi il est possible d’introduire une variable dans une ligne telle que celle-ci-dessous, mais je ne vais pas me lancer dans une telle transformation la tête dans un sac, je veux dire sans ton fichier.

Range("G2").FormulaArray = _
"=MAX(IF(RC[-6]:R[198]C[-6]=RC[-6],RC[-5]:R[198]C[-5],""""))"

Amicalement.

Salut Yvouille comment va ?

Oui comme tu le dis je réfléchi a voix haute et parle souvent tout seul même sur un forum

Alors voilà le truc ça c'est ta formule qui fonctionne parfaitement en FormulaArray j'ai remplacé les RC1 ou quoi j'y comprend encore moins lol

Range("F3").FormulaArray = _
    "=MAX(IF(A3:A200=A3,B3:B200,""""))"
    Range("F3").AutoFill Destination:=Range("F3:F200"), Type:=xlFillDefault

Et ça une formule qui marche bien en Formula sans Array et qui fait ce que j'ai mis en photo l'histoire du nombre de ligne

dl = Sheets("Index").Range("c" & Rows.Count).End(xlUp).Row

    Sheets("Index").Range("G3:G" & dl).Formula = "=SUM(E3*F3/1000)"

Et donc j'ai tenté de compiler les deux ce que j'avais essayé de faire avant mais sans résultat

dl = Sheets("Index").Range("c" & Rows.Count).End(xlUp).Row
Sheets("Index").Range("H3:H" & dl).FormulaArray = "=MAX(IF(A3:A200=A3,B3:B200,""""))"

Salut,

Sans avoir ton fichier à disposition, je ne m'intéresse plus à ton problème.

Amicalement.

Bonsoir

A tester

Sub Test()
Dim DLg As Long
  With Sheets("Index")
    DLg = .Range("C" & Rows.Count).End(xlUp).Row
    .Range("H3:H" & DLg).FormulaArray = "=MAX(IF($A$3:$A$" & DLg & "=A3,$B$3:$B$" & DLg & ",""""))"
  End With
End Sub

Merci Banzai et d'avoir trouver un bout de code malheureusement ça fais comme moi ça met que le chiffre max du premier nom les FormulaArray sont capricieuses mais sinon je me contenterais de ce qu'a eu la gentillesse de me faire Yvouille.

Salut Banzai,

Je vois que tu aurais tout autant besoin que moi du fichier

Bonnes salutations à vous tous.

Bonjour

Bonjour Yvouille, c'est vrai qu'avec un fichier, beaucoup de temps aurait été épargné

A tester

Sub Test()
Dim DLg As Long
  With Sheets("Index")
    DLg = .Range("C" & Rows.Count).End(xlUp).Row
    .Range("H3").FormulaArray = "=MAX(IF($A$3:$A$" & DLg & "=A3,$B$3:$B$" & DLg & ",""""))"
    Range("H3").AutoFill Destination:=Range("H3:H" & DLg), Type:=xlFillDefault
  End With
End Sub

Merci Banzai cette fois c'est la bonne genial désolé pour le fichier il est trop gros il pèse 4mo je pouvais pas le mettre en pièce jointe le site le refuse et en reconstituer un moins gros juste en exemple je n'aurais pas été capable ( j'ai essayé là mais c'est ça bug mdrrr ) c'est pour ça que j'ai mis un fichier mais sans ma macro ensuite Yvouille en a refais avec sa macro.

Et merci encore

Tu ne m'as jamais dit que tu ne pouvais pas joindre ton fichier car il était trop gros

Pour joindre un fichier jusqu'à 8192 Ko : http://www.cjoint.com/

Salut Yvouille

Je ne me sers jamais de ce genre de site, j'en est quasi jamais l'utilité je ne le connaissais pas celui là il en existe tellement

Amicalement

Rechercher des sujets similaires à "listbox macro"