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

VBScript Discussion :

Transférer partiellement une variable tableau sur excel


Sujet :

VBScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut Transférer partiellement une variable tableau sur excel
    Hello à tous,

    J'ai besoin de votre expertise sur le problème suivant :

    J'ai construit une variable tableau comme ci-dessous
    (désolé pour les traits d'union mais je ne savais pas comment faire autrement pour présenter un pseudo tableau rapidement )

    02/02/2015-------------03/02/2015------ --ect jusqu'à 15/02/2015
    CAHT paulo------------CAHT DIEGO---------------------CAHT TOTO
    CAHT JOJO-------------CAHT JOJO----------------------CAHT MIKE
    CAHT DIEGO-----------CAHT paulo
    --------------------------CAHT ZOZO

    Soit une colonne par jour et pouvant comporter de 1 à 5 éléments CAHT

    Donc pas de problème pour la variable mais maintenant je souhaiterais la transférer sur excel en splitant le tableau en deux.

    ex :
    première semaine commençant en range("a1") et la seconde semaine en range("a1)+9

    Comment faut-il faire ? faut-il faire une boucle et lire chaque "case" du tableau pour ensuite le transférer cellule par cellule ? Peut-on faire le transfère directement par blocs ?

    Je vous remercie par avance pour votre aide.
    Pascal

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Bonjour,

    J'ai peur de ne pas comprendre le but final.

    Donc pas de problème pour la variable mais maintenant je souhaiterais la transférer sur excel en splitant le tableau en deux.
    Qu'entendez-vous par spliter le tableau en 2 ?

    Pouvez-vous faire un schéma du résultat final souhaité avec les données du premier message ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Merci pour votre participation Miistik,

    (Je viens de découvrir que je pouvais faire un tableau dans le post !!)


    Bon pour en revenir à nos moutons.
    j'ai une "variable-tableau" à 2 dimensions qui ressemble au tableau ci-dessous.

    10/02/2015 11/02/2015 12/02/2015 13/02/2015 14/02/2015 15/02/2015 16/02/2015 17/02/2015 18/02/2015 19/02/2015
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE

    Pour une question de présentation, je souhaite reporter le contenu de cette variable sur ma feuille excel en deux tableaux distincts comme ci-dessous :
    10/02/2015 11/02/2015 12/02/2015 13/02/2015 14/02/2015
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE


    15/02/2015 16/02/2015 17/02/2015 18/02/2015 19/02/2015
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT

    Je sais le faire en faisant une boucle qui passe la "variable tableau" élément par élément et qui transfert le contenu sur excel cellule par cellule.
    En faisant comme cela, je m'interroge sur l'interet de passer par une variable tableau.

    Donc ma question est la suivante : peut-on transférer un groupe de cellule (cellule je ne sais pas si j'emploie le bon terme) de la "variable tableau" en une fois ?

    Merci pour votre aide

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Bonjour,

    Citation Envoyé par cabrettologue Voir le message
    10/02/2015 11/02/2015 12/02/2015 13/02/2015 14/02/2015 15/02/2015 16/02/2015 17/02/2015 18/02/2015 19/02/2015
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE

    Pour une question de présentation, je souhaite reporter le contenu de cette variable sur ma feuille excel en deux tableaux distincts comme ci-dessous :
    10/02/2015 11/02/2015 12/02/2015 13/02/2015 14/02/2015
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE


    15/02/2015 16/02/2015 17/02/2015 18/02/2015 19/02/2015
    CAHT JOJO CAHT JUJU CAHT VAL CAHT ZAZA CAHT ZOE
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT
    CAHT PAULO CAHT DODO CAHT TOTO CAHT TED CAHT ROBERT
    J'ai beau chercher, je ne trouve pas comment vous passer du premier tableau au second.

    Quant à ceci :
    Donc ma question est la suivante : peut-on transférer un groupe de cellule (cellule je ne sais pas si j'emploie le bon terme) de la "variable tableau" en une fois ?
    Vu que je n'ai pas compris la transformation tableau1 vers tableau2, je répondrai à la question sans me baser sur quelque chose de factuel.

    Il est possible de copier des ranges de cellules et de les coller différemment (par exemple copier une ligne et la coller en colonne).
    Il est également possible de nommer une plage de cellules et de la traiter d'une façon particulière.

    N'hésitez pas à clarifier le passage tableau 1 vers tableau 2.
    Pourquoi les données par date ne sont pas identiques du tableau 1 au tableau 2 ?
    Que s'est-il passé etc ...

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Bonjour;
    J'ai construit une variable tableau comme ci-dessous
    On voudrait savoir si ledit tableau est contenu dans un fichier texte, excel... et où peut-on puiser les infos à copier dans un fichier excel ?

    En plus, si les dates contenues dans les 2 tableaux "résultats" représentent les en-têtes de colonnes, il y a surement quelque chose d'incohérent là-dedans et ce selon le tableau source.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Bonjour et merci à tous deux pour votre participation,

    Je viens de prendre un coup au moral pour mon élocution !!!,

    Pour répondre à l_autodidacte
    On voudrait savoir si ledit tableau est contenu dans un fichier texte, excel...
    Non comme indiqué, ce tableau est contenu dans une variable tableau déclarée ainsi :
    Dim tableau() As Variant
    ReDim tableau(0 To 6, (7 * Range("nbsem"))) pour le rendre dynamique

    Donc je n'ai aucun problème pour créer et alimenter cette variable-tableau et ce n'est pas le but du post

    Pour répondre à Miistik
    J'ai beau chercher, je ne trouve pas comment vous passer du premier tableau au second.
    Le tableau 1, pour reprendre votre terme, est contenu dans une variable-tableau de ma macro. Elle fait 10 colonnes.
    Lors du transfère du contenu de cette variable sur une feuille excel, je ne veux pas avoir un tableau de 10 colonnes mais 2 tableaux de 5 colonnes et ce juste
    Pour une question de présentation
    En effet, le jour ou la variable fera 28 colonnes, et une fois transférée sur excel, j'aurais beau orienter la page en paysage, son utilisation serait fastidieuse (x pages pour un tableau de 6 lignes max).


    Donc, j'ai réussi à le faire.
    J'ai fait une boucle qui lit la variable-tableau et la transfére cellule par cellule :
    Cells(L, C) = tableau(L,C)
    Une fois que la boucle a lu 5 colonnes, il suffit de faire arriver la seconde partie X lignes plus bas.

    D'ou mes questions :
    Est-on obligé de faire cela cellule par cellule ou peut-on le faire par groupe de cellules ?

    Ma macro récupére les infos, les fait entrer une a une dans la variable tableau pour ensuite les ressortir une à une pour les mettre sur excel.
    Quelle est l’intérêt de la variable tableau ? Pourquoi ne pas récupérer les infos et les mettre directement une à une sur la feuille excel ?

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Ok, c'est plus clair.

    Est-ce que une variable dictionnaire ne serait pas un meilleur choix ? (en choissisant les dates comme clé)
    La vitesse de lecture d'un dictionnaire est supérieure à celle d'un tableau.

    En gros, on aurait CA("10/02/2015)= les différentes valeurs


    Ensuite, écrire seulement sur un nombre de colonnes définies est possible (colonne A à E par exemple).
    En rajoutant la position de la dernière cellule non vide, on obtient ce que vous voulez (si pour le 10/02 la colonne A finit à A5 et que pour le 11/02 la colonne B finit à B12, il faut recommencer à écrire en A13 ou A14 pour l'esthétique)

Discussions similaires

  1. [XL-2003] Erreur sur une variable tableau
    Par hobine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/03/2011, 16h52
  2. Passage d'un élèment d'une variable tableau à une feuille excel
    Par endersox dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2008, 15h54
  3. Test sur une variable tableau évoluée
    Par p_12345 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 11/12/2007, 09h52
  4. Réponses: 3
    Dernier message: 09/04/2006, 09h10
  5. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55

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