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 :

Ajout automatique de variables [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Par défaut Ajout automatique de variables
    Bonjour à toutes et à tous,

    Je travaille actuellement sur un logiciel de test pour composants électroniques et je rencontre un problème.
    Je dois créer un rapport sous excel, en VBA (comme vous l'aurez deviné...), mais mes connaissances en VBA sont... inexistantes, j'ai touché à plusieurs outils de programmation (C, python, mathlab, scilab, labview,...) mais je n'ai jamais approfondie tout ça.

    Je dois donc créer un rapport et ce qui me pose problème, c'est l'ajout de variable.
    Je travaille sur une bom de plusieurs milliers de lignes et je souhaiterai, qu'à chaque changement de valeur dans une colonne, la macro me créé une variable.
    La colonne concernée indique le nombre de fois qu'un composant est en parallèle, je peux donc me retrouver avec plusieurs centaines de variables...

    Est-ce possible? Si oui, comment?

    Merci à vous!

    PS : si besoin est, je peux joindre un tableau pour exemple.
    PS2 : je voudrais juste savoir comment automatiser la création d'une variable, je pense/espère pouvoir em débrouiller pour la suite de mon rapport.

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    tu peux définir tes variable avec un dictionnaire et les utiliser en les nommant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Sub test()
    Set Ditionaire = CreateObject("Scripting.dictionary")
    Ditionaire("A") = 1
    Ditionaire("A") = Ditionaire("A") + 1
    Ditionaire("C") = Ditionaire("A") * 5
    Ditionaire("d") = "A1"
    Range(Ditionaire("d")) = "toto"
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Par défaut
    Merci à toi rdurupt,

    Est-t-il possible d'automatiser la définition de variables?
    Je me vois mal écrire ceci plusieurs centaines de fois :S

    Et, j'ai oublié de préciser, ma macro utilise des valeurs générées par un autre logiciel sous un .csv - j'importe donc les valeurs de ce csv - mais le csv peut évoluer radicalement (changement de carte, donc changement de schéma électrique, de bom etc) d'où le besoin de l'automatisation de la création de ces variables.

  4. #4
    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
     Private Sub test()
    Set Ditionaire = CreateObject("Scripting.dictionary")
    Dim r As Range
    Dim L As Long
    Set r = ActiveSheet.UsedRange
    For L = 1 To r.Rows.Count
    Ditionaire("" & r(L, 1)) = Ditionaire("" & r(L, 1)) + r(L, 2)
    Next
    For L = 0 To Ditionaire.Count - 1
    Debug.Print Ditionaire("Var" & 1 + L)
    Next
    End Sub

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Par défaut
    Hmm merci.
    Ca va etre plus compliqué que ce que je pensais, je comprends rien
    Mais je vais bucher ça, encore merci à toi!

  6. #6
    Invité
    Invité(e)
    Par défaut
    dictionary permet de créer dynamiquement un tableau de variable en leurs donnant un nom
    Ditionaire("Variable1") par exemple!
    si la colonne A contient le nom de tes variables et la colonne B la valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Ditionaire(range("A1"))=rabge("B1")
    les variables sons créées à la volé tu les utilises c'est tout!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Ditionaire = CreateObject("Scripting.dictionary")
     Ditionaire(range("A1"))=range("B1")

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

Discussions similaires

  1. Ajout automatique d'espace dans une variable numérique
    Par enclave_51 dans le forum Langage
    Réponses: 2
    Dernier message: 08/08/2008, 18h49
  2. TValueListEditor: Ajout automatique d'une ligne vide
    Par Patrick Seuret dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/06/2005, 12h16
  3. Réponses: 5
    Dernier message: 23/06/2005, 10h18
  4. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33
  5. Ajout automatique de ressources
    Par Caotic dans le forum JBuilder
    Réponses: 2
    Dernier message: 20/08/2003, 14h57

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