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 :

[vba excel] renvoyer valeur array


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut [vba excel] renvoyer valeur array
    Bonjour tout le monde
    je stocke une plage de cellule sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 1 to 3
    tableaucomptes(i) = array(cel, cel.offset(0,1), cel.offset(0,2), cel.offset(0,3)) 
    next i
    jusque la tout va tres bien. je souhaiterai renvoyer la valeur d'une de ces cellules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    genre msgbox  tabcompte(2).array(3)
    evidement ce n'est pas ça qui marche, mais es ce possible?

    deuxieme question. si j'ai une liste de chiffre et un resultat et les operateur + et -
    puis je dire
    j'ai les chiffres 5.12.15 . 4.1.16 3. 20
    je connais le resultat 17
    et que le calcul me renvoie 5 + 12; 16 + 1; 20 -3, ça , je ne pense pas mais on peut rever. merci d'avance pour les tuyaux

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde déjà , si ça peut te donner une idée


    Ch't'avais bien dit, starec, que ça servirait à quelqu'un

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    excuse moi ouskel, merci de m'avoir trouvé une réponse, mais je ne sais pas si c'est une question de fatigue ou de dépassement de capacité, mais je ne comprend rien, a la faq. je ne vois pas l'adaptation a mon probleme. je dois etre a bloc pour ce soir. un coup de pouce plus clair est le bienvenue, je trouverais pas tout seul

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub testEableau()
    Dim cel As Range
    Set cel = Range("A1")
    For i = 1 To 3
    tableaucomptes = Array(cel, cel.Offset(0, 1), cel.Offset(0, 2), cel.Offset(0, 3))
    Next i
    For i = LBound(tableaucomptes, 1) To UBound(tableaucomptes, 1)
            MsgBox tableaucomptes(i)
    Next
    End Sub
    Si ça peut t'aider
    A+

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    ok, merci ouskel, c'est un peu plus clair, je regarderai demain, merci bien

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si ta plage est du style A1:H1 ou H1:Z15, tu peux récupérer les données ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub TableauxDeCellules()
    Dim Montab As Variant, cmpt1 As Long, cmpt2 As Long
    Montab = Range("A1:H15").Value
    For cmpt1 = LBound(Montab, 1) To UBound(Montab, 1)
        For cmpt2 = LBound(Montab, 2) To UBound(Montab, 2)
            MsgBox Montab(cmpt1, cmpt2) 
        Next cmpt2
    Next cmpt1
    'Et en sens inverse
    Worksheets("Feuil1").Range("A1:H15").Value = Montab
    End Sub
    qui était l'exemple donnée dans l'adresse citée
    A toutes fins utiles
    A+

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Voici une syntaxe qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 To 3
      tableaucomptes(i) = Array(2, 5, 7, 9)
    Next i
    MsgBox tableaucomptes(2)(3)
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Merci Alain.

  9. #9
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut renvoyer valeur array
    Bonjour à tous
    Bonjour à vous 4

    J'ai suivi cette discussion avec un très grand intérêt, mais je n'ai pas vraiment compris la 1ère question de alsimbad, car dans ce cas là je prend généralement un tableau bidirectionnel (voir multi au besoin) tout simplement sauf si tu voulais aller au plus court !!!! quant à ta deuxième question, j'ai l'impression qu'elle est restée dans les oubliettes, ou alors je vais me coucher tout de suite

    En ce qui concerne la réponse de AlainTech, là c'est le désert dans mon petit cerveau, je ne vois pas comment utiliser ce code, si je pouvais avoir des explications elles seraient les bien venues,

    Merci d'avance

    A+

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Mais oui, Alain il est comme ça. Il arrive, il donne la bonne réponse que tout le monde attendait avec un exemple belge et il s'en va sans regarder en arrière.
    Je reprends un exemple donné par un autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Montab, valeur1, valeur2, valeur3
    valeur1 = Array(1, 2, 3, 4, 5)
    valeur2 = Array(6, 7, 8, 9, 10)
    valeur3 = Array(11, 12, 13, 14, 15)
    Montab = Array(valeur1, valeur2, valeur3)
    Msgbox Montab (2) (3)
    Et là, ton "petit cerveau" prend tout de suite une aut' gueule
    A+

    C'est comme si tu mettais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Montab = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
    msgbox Montab(13)
    ... mais c'est plus long

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par Edelweiss
    je prend généralement un tableau bidirectionnel (voir multi au besoin)
    Il va dans tous les sens alors...

    multi dimensions...

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    salut Alain
    effectivement, ton code fonctionne. je n'ai pas le loisir de m'y remettre tout de suite, vu que je suis sur une histoire de fonction, mais dès que possible, je reteste.

    pour la deuxieme partie de la question, c'était un peu la cerise sur le gateau, mais j'y croyais pas trop, et si c'est possibele, j'ai peur que ce soit un peu compliqué pour moi; mais merci a tout ceux qui se seront penché sur le sujet

  13. #13
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par alsimbad
    deuxieme question. si j'ai une liste de chiffre et un resultat et les operateur + et -
    puis je dire
    j'ai les chiffres 5.12.15 . 4.1.16 3. 20
    je connais le resultat 17
    et que le calcul me renvoie 5 + 12; 16 + 1; 20 -3, ça , je ne pense pas mais on peut rever. merci d'avance pour les tuyaux
    Je veux bien m'attaquer à la cerise mais:
    1. Je te propose de créer une nouvelle discussion puisque le problème de tableau est résolu.
    2. Corrige ton énoncé. Tu as une liste de nombres et pas de chiffres.
    3. Précise-nous si tes nombres seront toujours dans le désordre ou s'ils peuvent être triés.
    4. J'espère que tu te contentes de 2 opérandes... Sinon, le traitement risque d'être un peu complexe et, du coup, aurait plus sa place dans le forum algorithme.

    A+
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. [vba excel] Recherche valeur d'une textbox dans une feuille
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2006, 10h55
  2. [VBA/Excel] Supprimer valeur de cellule
    Par amd64 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/07/2006, 12h41
  3. [VBA-Excel]Décale colonne tant que valeur cellule ....
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/02/2006, 17h56
  4. [VBA][Excel]Array en constante
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/02/2006, 12h46
  5. [VBA][Excel]Récupérer les valeurs du graphe...
    Par Samourai dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2006, 10h51

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