rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[VBA Excel ] Boucle

Posté par sebi78, le vendredi 23 mars 2007 à 18:06:11
bonjour à tous,

Je cherche à optimiser mon programme.
J'ai crée une 20 feuilles que je rend visible ou invisible à partir de boutons. Voici un exemple de code sur un bouton.
Je voudrais faire une incrementation et des boucles sur le numero des feuilles pour simplifier mon programme.
Comment puis faire.

Merci de m'aider
------------------------------------------

Private Sub CommandButton1_Click()
Worksheets(2).Visible = True
Worksheets(1).Visible = False
etc....
Worksheets(20).Visible = False

'Activation d'une feuille
Worksheets(2).Activate
'recentrer sur la feuille
Worksheets(2).Range("a5").Select

End Sub
Configuration: Windows XP
Internet Explorer 7.0
Répondre à sebi78  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le vendredi 23 mars 2007 à 23:31:30
bonjour

Voila une première idée, mais en fait il faudrait utiliser un seul bouton
pour choisir la feuille visible et n'écrire qu'une seule macro.

Private Sub CommandButton1_Click()
' n° du bouton choix=1 
call action(1)
End Sub

...

Private Sub CommandButton20_Click()
' n° du bouton choix=20 
call action(20)
End Sub

Private Sub action(choix as integer)

dim i as integer

for i = 1 to 20
Worksheets(i).Visible = False
next i

Worksheets(choix).Visible = True

'Activation d'une feuille
Worksheets(choix).Activate
'recentrer sur la feuille
Worksheets(choix).Range("a5").Select

End Sub

toujours zen
Répondre à gbinforme

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebi78, le dimanche 25 mars 2007 à 20:53:58
Bonjour,

Merci pour ton aide. J'ai essaie tes lignes de codes. J'ai encore des soucis. voici le message d'erreur.

erreur exécution 1004 impossible de definir la propriete visible de wooksheet.

Qand je veux activer voir le feuille 2 , il me cache feuille 1 et 2 puis je ne peux revenir à ma feuille 1 avec mon bouton retour.

Je t'ai fait un fichier essai par contre je ne sais pas comment te le joindre.
Répondre à sebi78

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le dimanche 25 mars 2007 à 23:03:50
bonjour

Il ne faut certainement pas occulter tous les onglets, ce qui provoque l'erreur.

C'est vrai qu'un fichier essai sera plus parlant.

tu peux l'envoyer sur : http://cjoint.com/

puis mettre sur un message le code attribué.

merci d'avance.

toujours zen
Répondre à gbinforme

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebi78, le dimanche 25 mars 2007 à 23:11:48
Bonjour,

Voici mon fichier test. Si cela ne suffit pas je t'enverrai mon fichier que je veux optimiser pour voir en detail ce que je veux.
C'est pas evident d'expliquer.

http://cjoint.com/?dzxiWkVOzY
Répondre à sebi78

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gbinforme, le lundi 26 mars 2007 à 10:31:19
bonjour

Effectivement, je n'avais pas vu ta façon d'utiliser la fonction.

Je te propose la modification suivante qui fonctionne avec n'importe quel nombre de feuilles.

Public Sub action(choix As Integer)

Dim i As Integer

For i = 1 To Worksheets.Count
    If Worksheets(i).Index = choix Then
        Worksheets(i).Visible = True
    Else
        If Not ActiveSheet.Index = i Then Worksheets(i).Visible = False
    End If
Next i

'changement de feuille active
i = ActiveSheet.Index
Worksheets(choix).Activate
Worksheets(i).Visible = False

'recentrer sur la feuille
Range("a5").Select

End Sub


Comme tu n'as qu'un seul onglet visible,
tu peux dans le menu outils / options / onglet affichage,
décocher l'option "onglets de classeur".

Bonne journée.


toujours zen
Répondre à gbinforme

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 sebi78, le lundi 26 mars 2007 à 12:54:14
Bonjour,

Merci pour ton aide. Cela marche . J'aurais surement d'autre question comme je debute.

bonne journee à toi.

a+
Répondre à sebi78
Logiciels pertinents trouvés dans les téléchargements
Télécharger Excel Viewer 2003Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même...Catégorie: Tableur
Licence: Freeware/gratuit
Télécharger GANTT Project 2.0.7GANTT Project - GanttProject est un outil de gestion de projet libre, permettant de réaliser des diagrammes de GANTT afin de planifier un...Catégorie: Gestion de projet
Licence: Open Source
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Télécharger OpenOffice.org 2.4.1OpenOffice.org - OpenOffice est une suite bureautique complète entièrement gratuite, compatible avec la suite Microsoft Office. Elle...Catégorie: Suite bureautique
Licence: Open Source
Plus de logiciels gratuits sur « [VBA Excel ] Boucle »