Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Taille de code - VBA [ Langages dérivés / VBA ] (Teritoto)

mercredi 4 juin 2008 à 17:25:52 | Taille de code - VBA

Teritoto

Bonjour,

J'ai un petit problème de taille de fichier (2Mo) à cause de mes codes VBA.

Dans un classeur Excel:
-j'ai près de 100 feuilles (chacune décrivant un produit)
-sur chaque feuille j'ai une combobox et un bouton ki me permettent de naviguer d'une page à l'autre facilement

voici le code:
      Private Sub CommandButton1_Click()

         Dim MySheet As Worksheet

         For Each MySheet In ThisWorkbook.Sheets
             If MySheet.Name = ComboBox1.Text Then
             MySheet.Select: Exit Sub
             End If

         Next MySheet

         End Sub

Mon souci est que d'avoir dupliqué ce code sur chaque page a fortment allourdi mon fichier (de près de 500ko).
Y-a-t'il une une astuce pour loger ce code sur le classeur (et non sur chaque page) et que le bouton soit lié à ce code unique?

Merci d'avance pour votre aide.

Teritoto


mercredi 4 juin 2008 à 17:44:21 | Re : Taille de code - VBA

us_30

Membre Club
Bonjour,

Une solution simple, serait d'utiliser une UserForm, associé à un menu dans la barre de menu. Ainsi, toutes les feuilles serait "libres" (pas d'élément de formulaire dedans), et le code serait limité à sa plus simple expression.

Amicalement,
Us.

mercredi 4 juin 2008 à 18:04:41 | Re : Taille de code - VBA

bigfish_le vrai

Salut,

Salut us_30 sympat de te revoir a nouveau dans le coin

teritoto, tu peux aussi supprimer tout tes boutons et metre en forme une cellule pour qu'elle ressemble a un bouton puis mettre le code suivant dans le thisworbook de ton projet:

dans le code suivant je considere que la cellule qui fait office de bouton est la cellule B2

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    With Target
        If .Cells.Count = 1 And .Address = "$B$2" Then
            Dim MySheet As Worksheet
            For Each MySheet In ThisWorkbook.Sheets
                If MySheet.Name = .Text Then
                    MySheet.Select: Exit Sub
                End If
            Next MySheet
        End If
    End With
End Sub

cela fera exactement la meme chose qu'avec un bouton mise a part que le code n'existe qu'unr fois dans thisworkbook

A+

mercredi 4 juin 2008 à 18:22:03 | Re : Taille de code - VBA

us_30

Membre Club
Salut Bigfish_mais_le_vrai, heureux aussi de revoir les habitués...

(Je n'ai pas quitté VBF, mais je n'avais plus une minute à moi... enfin, bref...)

Ce que je trouve peu pratique, c'est qu'il faut écrire le nom de la feuille... Or qu'on pourrait penser à faire une liste déroulante, à priori, avec toutes les noms de feuilles. A moins que l'interêt serait de passer qu'à une seule feuille spécifique... Teritoto, pourrais-tu préciser ? (ton pb me donne l'idée d'un petit programme...)

Amicalement,
Us.

jeudi 5 juin 2008 à 02:11:22 | Re : Taille de code - VBA

MPi

Et pourquoi ne pas simplement utiliser le click droit en bas à gauche sur les 4 boutons fléchés de l'application ? aucun code et ça donne le même résultat que les combobox...

De toutes façons, la grosseur du programme n'a pas vraiment d'influence sur la lenteur de ce programme tant que le code n'est pas activé. Pour ce qui est des formules, là c'est différent...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI


jeudi 5 juin 2008 à 06:55:23 | Re : Taille de code - VBA

mortalino

Membre Club
salut,

je suis d'accord avec Us_30 (salut)
Un UserForm en Non modal ferait très bien l'affaire.
Autres soluces :
* Module de classe (risque d'être long pour boucler au démarrage du classeur)
* Ajout d'un menu, genre à côté du ? (qui représente l'aide Excel)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

jeudi 5 juin 2008 à 15:12:22 | Re : Taille de code - VBA

Teritoto

Bonjour à tous,

Mon objectif est de pouvoir rapidement passer d'une feuille à une autre et cela à partir de toutes les feuilles, sachant que je connais le nom de toutes les feuilles.

Merci de votre intérêt,
Teritoto

jeudi 5 juin 2008 à 23:12:21 | Re : Taille de code - VBA

MPi

Si tu veux continuer avec ta méthode, une seule ligne devrait suffire.
À moins que la vérification soit nécessaire pour une raison que j'ignore...
Et le code pourrait être dans Combobox1_Click plutôt qu'un bouton. Ce qui donne un contrôle de moins sur 100 feuilles...

Private Sub CommandButton1_Click()
    Sheets(Combobox1.Text).activate
End Sub      


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI


jeudi 5 juin 2008 à 23:26:10 | Re : Taille de code - VBA

us_30

Membre Club
Bonsoir à tous, Mortalino et MPi,

C'est vrai que MPi a totalement raison sur son premier post... Faire un click droit sur les flèches... J'utilise pas souvent cette possibilité, mais qui réponds tout même bien au problème de navigation...

Amicalement,
Us.

jeudi 5 juin 2008 à 23:40:01 | Re : Taille de code - VBA

MPi

En fait, si je créais ce genre d'application pour mes propres besoins, j'opterais pour ma première réponse sans hésiter.

Par contre, si cette application devait être utilisée par d'autres, j'essaierais peut-être de créer une méthode plus conviviale comme cherche à faire Teritoto... Il y a pas mal de gens que je connais, et qui utilisent mes programmes... et il faut être prudent sur la façon dont on bâtit les applis (et tu en sais quelque chose, j'en suis sûr ). Ça ne prend pas grand chose pour les perdre... même avec des explications...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI



1 2

Cette discussion est classé dans : vba, taille, page, code, mysheet


Répondre à ce message

Sujets en rapport avec ce message

recupere le code source d'une page web via le webbrowser [ par BomberMan ] comment recupere le code source d'une page web via le composant webbrowser ou via l'api ou autre mode.merci d'avance je recherche code pour replacer les controles en fonction de la taille du formulaire [ par vincent ] je souhaite que mes controles se replace dans le form comme il faut pour etre visible si je modifie la taille de mon formulaire avec la souris il faut Code vb sur les page web. [ par nullspace ] Je voudrais savoir s'il existe un moyen facile de mettre en forme sur une page web le code vb avec les couleurs adaptées.Merci. UpDate et Insert sur VBA (Visiwatch) [ par Kosta ] Je code en VBA pour un logiciel qui s'appele Visiwatch.Mon problème : mise à jour des items d'une table, et insertion des valeurs dans une autre. Je t Activation du code VBA dans Excel [ par yorrick ] J'aimerai pouvoir lancer (ou activer )automatiquement à l'ouverture de monfichier Excel les codes VBA qui se trouvent dans mes feuilles ...Ce sont pou ERREUR dans mon code [VBA niveau grand débutant] [ par Céline ] Bonjour,A celui qui a un peu de temps à perdre, j'expose mon pb ;o)J'ai essayé tant bien que mal de faire une macro VBA pour automatiser l'import, la ERREUR dans mon code [VBA niveau grand débutant] [ par Céline ] Bonjour,A celui qui a un peu de temps à perdre, j'expose mon pb ;o)J'ai essayé tant bien que mal de faire une macro VBA pour automatiser l'import, la comment recuperer une info via une page web ? [ par touns1 ] BonjourComment, après avoir récuperer un code source d'un page web (http://www. ... ),chercher puis prendre une info présise de ce code (une date, un *URGENT* AIDEZ MOI SVP J'AI ABSOULUMENT BESOIN DE CE CODE LA [ par WwWwWwWaAaAaAaZzZzZzAaAaAaAaA !¿? ] Je c que je répete le message mais personne y répond pis personne le vois dans les news yé trop bas !!! J'ai vraiment besoin de ca helpppppp svpppBon Code VBA tableau croise [ par vince ] l'instruction suicante permet d'inserer un champs calculer dans un tableau croisée dynamique. est ul possible de faire reference a un champs precedent


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.