1 seul bouton????

bonsoir,

je seche un peu là alors je viens demander votre aide

voilà en piece jointe un fichier comprenant 12 feuilles avec un bouton "liste" pour faire apparaitre sur la feuille 1 la liste des feuilles,

et un deuxieme bouton pour reset cette liste.

question:

comment faire pour n'avoir qu'un seul bouton qui fera ces deux actions (reset, et ensuite reafficher la liste des feuilles)

merci

Bonsoir,

Une solution

Sub liste()
Dim ws As Worksheet
    If Range("a2") = "" Then
        For Each ws In Worksheets
             Feuil1.Range("a20").End(xlUp).Offset(1, 0) = ws.Name
        Next ws
    Else
        Range("A1:A20").ClearContents
    End If
End Sub

Amicalement

Claude

bonsoir dubois ,

merci ca marche nickel dans cet exemple mais dans mon fichier où je veux faire celà pas moyen!!

et mon fichier est trop grop pour le mettre en piece jointe

je peux le ul sur mon hebergeur et mettre un lien en mp si tu accepte

merci

Ben essaye de reproduire ton fichier en moins lourd

ou tu le compresse, pas besoin de toutes les feuilles.

Claude

re ben il fait 4mo

si j'enleve des feuille ca va generer plein d'erreur

suis pas sur que ca marchera

re,

Si tu expliquais l'objectif, on pourrait surement mieux t'orienter,

c'est quoi la feuile1, une page d'accueil ?

d'où lance-tu l'action ?

un bouton par feuille ?

à te relire

Claude

re et bien meme en laissant que le minimum j'arrive a 2mo

je vais taché de m'expliquer:

en faite il y a env 40 feuilles, qui sont souvent renomé,

sur chaque feuille, il y a une cellule qui ramenne le nom de la feuille,

d'ou cette liste de feuille pour mettre dans la cellule en question =la cellule correspondant apres avoir cliqué sur le bouton (macro liste) OK ?

pour que les noms se mettent à jour automtiquement dans la cellule de chacune des feuilles,

je renome donc la feuille, fait un reset de cette plage ou apparaissent les nom de feuilles, puis redemande cette fameuse liste,en cliquant sur un autre bouton, ceux qui me met les nom dans chaque cellules de chaque feuille à jour.

actuellement mes deux bouton se trouvent sur la deuxieme feuille

"mise à jour ref-prix-effectif"

le premier bouton sert a effacer la liste qui apparait sur la premiere feuille

"ne pas toucher non protégée" en A2/A45

et le deuxieme sert a reactualiser la liste une fois les feuilles renommées

en fait la manip c'est ;

je renomme mes feuille quand besoin est,

1er bouton je reset, et deusieme bouton ca me

reactualise la liste et donc la cellule contenant le nom de sa feuille sur chacune d'elle

ouf pas simple, pas sur que vous compreniez

merci

re,

Pas sûr d'avoir bien compris !

essaye

Sub liste()
Dim ws As Worksheet
    With Sheets("Feuil1")
        If .Range("a2") = "" Then
            For Each ws In Worksheets
                .Range("a20").End(xlUp).Offset(1, 0) = ws.Name
            Next ws
        Else
            .Range("A1:A20").ClearContents
        End If
    End With
End Sub

sinon pourquoi ne pas mettre le nom de chaque feuille directement dans la cellule voulue

(si même emplacement)

Claude

re,

non marche toujours pas

actuellement mes deux bouton se trouvent sur la deuxieme feuille

"mise à jour ref-prix-effectif"

le premier bouton sert a effacer la liste qui apparait sur la premiere feuille

"ne pas toucher non protégée" en A2/A45

la deuxieme feuille dans vb a le nom "feuil1(mise à jour ref-prix-effectif)"

et la premiere

"feuil43(ne pas toucher non protégée)"

c'est peut etre pour celà que ca ne veut par marcher!

Bonsoir

Peut-être en cherchant dans une autre direction

Si je comprend bien, tu veux dans chaque feuille une cellule qui récupère le nouveau nom après changement.

Si dans cette cellule tu mets la Formule

=STXT(CELLULE("nomfichier";$A$1);TROUVE("]";CELLULE("nomfichier";$A$1))+1;NBCAR(CELLULE("nomfichier";$A$1)))

Cette cellule affichera toujours le nom de la feuille.(après un premier enregistrement du fichier pour valider ces formules)

et le Code donné par Claude affichera la nouvelle liste.(Un seul bouton)

Cordialement

dans mon code précédent, j'ai mis

With Sheets("Feuil1")

Sheets("Feuil1") est la feuille qui reçoit la liste

corrige ce nom si besoin

Claude

bonsoir Claude,

marche toujours pas

Bonsoir

As-tu essayé la solution que je t"ai proposée?

Cordialement

salut,

et bien en fait oui j'ai essayé mais pas possible

ce code fonctionne tres si le bouton se trouve sur la meme feuille que la liste des onglets

mais malheureusement mon bouton se trouve sur une autre feuille!

ya t'il une solution ?

de plus il faut cliquer deux fois sur le bouton, et il possible que ca reinitialise la liste en cliquant qu'une seul fois sur ce bouton ?

voir fichier joint

Sub liste()

Dim ws As Worksheet

If Range("a2") = "" Then

For Each ws In Worksheets

Feuil1.Range("a20").End(xlUp).Offset(1, 0) = ws.Name

Next ws

Else

Range("A1:A20").ClearContents

End If

End Sub

merci beaucoup

Salut le forum

Modifie le nom Feuil2 par la feuille qui doit recevoir ta liste

Sub liste()
Dim ws As Worksheet
With Feuil2
    .Range("A1:A10").ClearContents
        For Each ws In Worksheets
             .Range("a10").End(xlUp).Offset(1, 0) = ws.Name
        Next ws
End With
End Sub

Mytå

Bonjour Mytâ

génial ca marche

merci

Bonjour,

si Ok, c'est ici

a resolu2
Rechercher des sujets similaires à "seul bouton"