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 :

simplifiez un code [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut simplifiez un code
    Bonjour à tous

    Sur un formulaire me permettant de saisir les commandes d'un groupe,
    j'utilise la combobox "opération" pour spécifiez le type de commande ("parfum", "bijou", "poisson",...)

    ensuite je saisie jusqu'à 10 nom dans des combobox ("nom1" à "nom10") et 10 montant dans des textbox ("mtt1" à "mtt10")

    j'utilise un code assez lourd et répétitif

    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
     
     
    'ecrire les commandes
    If nom1.Value <> "" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(1, 0) = commande1.Value
    If nom1.Value <> "" Then Sheets("commandegroupée").Range("b65536").End(xlUp).Offset(1, 0) = nom1.Value
    If operation.Value = "parfum" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 2).Value = mtt1.Value
    If operation.Value = "bijou" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 3).Value = mtt1.Value
    If operation.Value = "poisson" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 4).Value = mtt1.Value
    If operation.Value = "habillement" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 5).Value = mtt1.Value
    If operation.Value = "livre" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 6).Value = mtt1.Value
    If operation.Value = "parapharmacie" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 7).Value = mtt1.Value
    If operation.Value = "viande" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 8).Value = mtt1.Value
    If operation.Value = "consommable" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 9).Value = mtt1.Value
    If operation.Value = "garantie" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 10).Value = mtt1.Value
    If operation.Value = "photo" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 11).Value = mtt1.Value
    If operation.Value = "ustensille" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 12).Value = mtt1.Value
    If operation.Value = "pain" Then Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, 13).Value = mtt1.Value
    et je répète ce code encore 9 fois

    comment puis-je le simplifier

    merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    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
    Dim MyOffset As Integer
    If nom1.Value <> "" Then
        Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(1, 0) = commande1.Value
        Sheets("commandegroupée").Range("b65536").End(xlUp).Offset(1, 0) = nom1.Value
    End If
    Select Case operation.Value
    Case "parfum"
    Case "bijou"
    Case "poisson"
    Case "habillement"
    Case "livre"
    Case "parapharmacie"
    Case "viande"
    Case "consommable"
    Case "garantie"
    Case "photo"
    Case "ustensille"
        MyOffset = 12
    Case "pain"
        MyOffset = 13
    End Select
    Sheets("commandegroupée").Range("a65536").End(xlUp).Offset(0, MyOffset).Value = mtt1.Value

  3. #3
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    Merci

    je n'utilise jamais le case
    j'en vois l'utilité aujourd'hui ^^

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 09h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

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