IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Réduction de code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 137
    Par défaut Réduction de code
    bonsoir

    comment reduire mon code de 15x15 boutons qui et tres lourd et tres long a ouvrir

    un extrait des 255 codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub CommandButton1_Click()
    Application.Goto Reference:=Range("c4"), Scroll:=True
    End Sub
    Private Sub CommandButton2_Click()
    Application.Goto Reference:=Range("c39 "), Scroll:=True
    End Sub
    Private Sub CommandButton3_Click()
    Application.Goto Reference:=Range("c74 "), Scroll:=True
    End Sub
    Private Sub CommandButton4_Click()
    Application.Goto Reference:=Range("c109 "), Scroll:=True
    End Sub
    Private Sub CommandButton5_Click()
    Application.Goto Reference:=Range("c144 "), Scroll:=True
    End Sub
    Private Sub CommandButton6_Click()
    Application.Goto Reference:=Range("c179 "), Scroll:=True
    End Sub
    Private Sub CommandButton7_Click()
    Application.Goto Reference:=Range("c214 "), Scroll:=True
    End Sub
    Private Sub CommandButton8_Click()
    Application.Goto Reference:=Range("c249 "), Scroll:=True
    End Sub
    Private Sub CommandButton9_Click()
    Application.Goto Reference:=Range("c284 "), Scroll:=True
    End Sub
    Private Sub CommandButton10_Click()
    Application.Goto Reference:=Range("c319 "), Scroll:=True
    End Sub
    Private Sub CommandButton11_Click()
    Application.Goto Reference:=Range("c354 "), Scroll:=True
    End Sub
    pour être plus clair j ai 15 tableaux avec 15 boutons
    ex:les boutons 3,18,33,48 ect ect correspondent au tableau 3 donc j ai 15 bouton qui vont au tableau 3
    j espère être clair

    merci d avance
      0  0

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir ben non pas tres clair
    tes boutons sont dans quoi? ou ?

    une listebox ou une combobox avec les address suffirait non? une !!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  0

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Je prêche encore dans le désert, mais bon.

    Avec VB.net (ou C#), on peut gérer plusieurs boutons dans une procédure click. Un petit bloc select case et le nom du contrôle qui a été automatiquement transmis à la procédure.
    Avec VB.net (ou C#), on peut faire des menus presque les yeux fermés
    Avec VB.net (ou C#), on peut faire des applications Office qui seront compatibles Office 2003 à Officem2016 (et, espérons, Office 2019), parce que les PIA ont le même GUID
    Avec VB.net (ou C#), on peut des applications Office avec tous les contrôles .net compatibles Office 32 bits et Office 64 bits et même une seule application directement compatible 32 et 64 bits.
    Avec VB.net (ou C#), on peut des applications compilées qui vont mieux supporter 225 boutons, même si cela n'a pas l'air d'avoir de l'allure.
    Avec VB.net (ou C#), on peut piloter Excel comme si c'était, du moins en apparence, de piloter Word par Excel

    Sans renier VBA, il y a des fois, où il faut accepter qu'il n'est peut-être pas adapté pour toutes les simagrées que l'on veut faire avec Excel
      1  0

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu ne dis pas ce que sont supposé faire les boutons, ni comment ils sont placés mais je suppose que ceci pourrait le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub GotoTableau
       Dim Choix As Integer, Tableau As Long
     
       Choix = Application.InputBox( prompt:="Tableau à atteindre", Type:=1)
       Tableau = Choose(Choix, 39, 74, 109, 144, 179, 214,249, 284, 319, 354)
     
       Application.Goto Reference:=Range("c" & Tableau), Scroll:=True
    End Sub
    Il ne te reste plus qu'à relier cette macro à une icone de la barre d'outils à accès rapide ou à une simple forme.

    Ca pourrait sans doute encore être simplifié puisque, visiblement, tes tableaux sont toutes les 35 lignes.
    Si c'est le cas, le Choose pourrait être remplacé par un petit polynôme du premier degré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub GotoTableau
       Dim Choix As Integer
       Choix = Application.InputBox( prompt:="Tableau à atteindre", Type:=1)
       Application.Goto Reference:=Range("C" & (Choix * 35 + 4)), Scroll:=True
    End Sub
    Cela dit, si ton appli se résume à des Goto, ça peut se faire sans VBA avec de simples liens hypertextes liés à des cellules ou des formes.
      0  0

  5. #5
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 137
    Par défaut
    salut tous

    si je fais 15 bouton comme ca
    Nom : Capture.JPG
Affichages : 297
Taille : 14,1 Ko
    je peux pas lui affecter une macro (la placer dans un module pour que ça fonctionne dans plusieurs feuilles)
    et mettre un de c 15 boutons dans chaque tableau

    merci de me répondre je patauge grave la !!!

    ps:g tester les hyperliens marche bien en descendant mais décale les lignes en remontant ???
      0  0

  6. #6
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir a tous.
    Voyons voir si j'ai bien compris votre problème: vous avez 15 feuilles avec chacune 1 tableau qui contient 15 boutons vous permettant d'atteindre 15 endroits différents du tableau?
    Si ce n'est pas cela, merci de préciser exactement ce que vous avez et ce que vous désirez.
    en ce qui concerne les boutons, aucuns problèmes pour accéder à une macro. (Click droit sur le bouton. apparition d'un menu/ affecter une macro/ choix de la macro (exemple Sub commandButton1_click))
    Les macros peuvent être sur un module.
    Mais vous pouvez très bien aussi utiliser le code deux de Menhir dans un UserForm, pour avoir seulement des adresses(numTableau et adresseTableau) que vous choisiriez dans une listeBox 2 colonnes et qui vous emmenerais au bon endroit
    Cdt
      0  0

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par exelan Voir le message
    merci de me répondre je patauge grave la !!!
    C'est normal si tu ne lis pas les réponses qui te sont faites...
      3  0

Discussions similaires

  1. Compression & Réduction du code
    Par Arnaud F. dans le forum jQuery
    Réponses: 2
    Dernier message: 28/08/2010, 13h01
  2. réduction de code
    Par levaron dans le forum Langage
    Réponses: 3
    Dernier message: 02/06/2009, 09h16
  3. Réduction de code
    Par NeMo_O dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 21/08/2008, 14h38
  4. réduction de code
    Par lefelinherbivore dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 24/04/2008, 21h49
  5. Réduction de code
    Par mouaa dans le forum VBA Access
    Réponses: 13
    Dernier message: 27/12/2007, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo