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 :

Est ce possible de simplifier ce code ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Par défaut Est ce possible de simplifier ce code ?
    bonjour le forum

    Voila j'ai des données qui s'enregistre dans une feuille de calcule nommée TCOOLANT avec des texte box et des option button que j'ai renommé pour mes besoins

    les textbox = VDM1 etc
    les optionbutton = OPM1 etc

    je cherche si c'est possible de simplifier mon code que voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sheets("TCOOLANT").Range("A65536").End(xlUp).Offset(1, 0).Value = CStr(VDM1)
     
        Sheets("TCOOLANT").Range("B65536").End(xlUp).Offset(1, 0).Value = CStr(VDM2)
           Sheets("TCOOLANT").Range("C65536").End(xlUp).Offset(1, 0).Value = CStr(VDM3)
            Sheets("TCOOLANT").Range("D65536").End(xlUp).Offset(1, 0).Value = CStr(VDM4)
     
        Sheets("TCOOLANT").Range("E65536").End(xlUp).Offset(1, 0).Value = IIf(OPM1, "Liège", "")
        Sheets("TCOOLANT").Range("E65536").End(xlUp).Offset(1, 0).Value = IIf(OPM2, "Jemeppe", "")
           Sheets("TCOOLANT").Range("F65536").End(xlUp).Offset(1, 0).Value = IIf(OPM3, "Liège", "")
        Sheets("TCOOLANT").Range("F65536").End(xlUp).Offset(1, 0).Value = IIf(OPM4, "Jemeppe", "")
    et ainsi de suite pour mes autres textbox et option buttons

    d'avance merci pour votre aide

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Pourrai tu préciser un peu.
    Tu pourrai essayer d'ecrire ça sous forme de boucle, mais avec ce que tu as donné je suis pas sur que ça vaille le coup. Combien de ligne as tu?

    Tu peux déja faire set Sh=sheets("ta feuille") si tu veux l'appeler souvent ça évite que ce soit long

    sinon en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    with Sheet("ta feuille")
    .range...
    .range...
    ...
    end with
    Si la feuille en question est active alors tu pêux même enlever le Sheet("").

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Par défaut
    merci pour ta réponse

    j'ai plus ou moin 40 textbox et la meme chose avec des option button

    actuelement je l'ai fait comme cité plus haut
    mais mon application plante tout le temp
    merci

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    En gros tu as 40 colonnes avec des textbox en bas de la colonne et en fonction de ce qu'il y a dans les textbox de la colonne tu veux ecrire un truc dans la case en dessous?

    pour la boucle tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i=1 to i=n° de la dernière colonne
    Sheets("TCOOLANT").column(i).End(xlUp).Offset(1, 0).Value = CStr(VDM & i)
    next i
    même chose pour les opm

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Par défaut
    Citation Envoyé par diude54 Voir le message
    En gros tu as 40 colonnes avec des textbox en bas de la colonne et en fonction de ce qu'il y a dans les textbox de la colonne tu veux ecrire un truc dans la case en dessous?
    sorry j'ai pas été asser clair

    j'ai un userform multi page

    avec des textbox et des option buton dont je doit recuperer les valeurs pour aller les mettre sur une feuille en collonne en fonction de la date du jour
    donc aujourdh'ui pour commencer ma premire textbox sera en A2 la deuixieme en B2 et ainsi de suite pour les autres et demain la meme chose mais dessous donc A3, B3 etc

  6. #6
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Même idée que précedemment mais remplace le numéro de la dernière colonne par le numero de la dernière textbox.

    tu devrais aussi essayer de mettre au lieu

    plutôt

    Aussi je voit pas l'intéret de faire Cstr, si tu utilise juste

    ce que tu as saisi dans la textbox sera inscrit dans la cellule

    Tu devrais aussi pouvoir lister les textbox de ton userform et faire un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim txt as Oleobject.textbox
     
    For each txt in userform1
    ton code
    next txt
    mais je ne sais plus comment on declare une textbox.

  7. #7
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Essaie comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TCOOLANT").column(i).End(xlUp).Offset(1, 0).Value = CStr(Controls("VDM" & i))
    ++
    Minick

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Par défaut
    Citation Envoyé par Minick Voir le message
    Salut,

    Essaie comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TCOOLANT").column(i).End(xlUp).Offset(1, 0).Value = CStr(Controls("VDM" & i))
    ++
    Minick
    meme message d'erreur

    voila mon fichier que j'aimerai simplifier

    http://www.megaupload.com/?d=5XWFV1V3

  9. #9
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    exact ça ne fonctionne pas. On ne ppeut pas mettre de variable pour le nom d'un objet.
    C'est le VDM & i qui ne fonctionne pas.
    Tout de suite je ne vois pas comment contourner ça.
    Cherche plutot du coté de for each textbox in userform

Discussions similaires

  1. Réponses: 15
    Dernier message: 09/05/2008, 17h11
  2. [PHP-JS] Est il possible d'intégrer du code PHP dans du code javacript ?
    Par bilou95 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/07/2007, 09h05
  3. Réponses: 2
    Dernier message: 12/07/2007, 15h07
  4. Réponses: 6
    Dernier message: 07/08/2006, 11h26
  5. Réponses: 4
    Dernier message: 03/02/2006, 10h08

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