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 :

Ranger un bout de colonne dans une array et mettre cette array dans un bout de ligne


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Ranger un bout de colonne dans une array et mettre cette array dans un bout de ligne
    Bonjour

    Je cherche a stocker des résultats qui sont sur 20 cellules l'une en dessous de l'autre dans un tableau l'une a coté de l'autre.
    Puis ensuite on change les parametres et on recommence une ligne en dessous

    Pour cela j'ai compris que le plus rapide était ARRAY

    Mon code ne marche étant donné ma mauvaise connaissance de la syntaxe et de bien d'autres choses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim myArrFin As Variant
     myArrFin = Application.Transpose(Worksheets("feuilledecalculs").Range(Cells(96, numero2colonne + 3), Cells(114, numero2colonne + 3))).Value2
    rien n'y fait array reste vide

    ensuite je voulais ranger le tout comme ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     Sheets("BData").Range(Cells(numero2ligne, numero2colonne), Cells(numero2ligne,numero2fin2colonne)).Value2 = MyArrFin

    Et voila si vous avez qq tuyaux merci M'sieux Dames

  2. #2
    Membre habitué
    Homme Profil pro
    Fortune teller
    Inscrit en
    Octobre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Fortune teller

    Informations forums :
    Inscription : Octobre 2007
    Messages : 110
    Points : 145
    Points
    145
    Par défaut Array
    Transpose n'existe pas en VB. C'est une fonction spécifique à Excel. Il faut donc rajouter WorksheetFunction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.Transpose

  3. #3
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour le fil, bonjour le forum,

    @Zoltar, ce que tu dit est vrai toutefois Application.Transpose fonctionne (ne me demande pas pourquoi)...

    @VBA, Un exemple basé sur ton code mais en supprimant les variables de ligne et de colonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro2()
    Dim OS As Worksheet
    Dim OD As Worksheet
    Dim TV As Variant
     
    Set OS = Worksheets("feuilledecalculs")
    Set OD = Worksheets("BData")
    TV = OS.Range(OS.Cells(96, 1), OS.Cells(114, 1)).Value
    OD.Cells(1, 1).Resize(19, 1).Value = TV 'les données sont renvoyées dans la même colonne
    OD.Cells(1, 1).Resize(1, 19).Value = Application.Transpose(TV) 'les données sont renvoyées dans la même ligne
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut
    Bonsoir …
    Dans les possibilités d’Excel,
    Application.WorksheetFunction.truc peut se réduire à Application.truc pour peu que truc est ne fonction précise (liste affichée après la saisie du .)
    Nom : Fonction VBA.jpg
Affichages : 193
Taille : 8,0 Ko

    Un exemple de transposition d’une sélection dans une colonne d’un tableau de la feuille 1 vers la feuille 2 (évènementielle écrite dans le module de la feuille 1)
    Nom : Transpose.jpg
Affichages : 237
Taille : 120,3 Ko

  5. #5
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par zoltar_x Voir le message
    Transpose n'existe pas en VB. C'est une fonction spécifique à Excel. Il faut donc rajouter WorksheetFunction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.Transpose
    Merci mais la simple modification entraine une erreur.
    je vais tenter d'autres choses
    Merci quand même

  6. #6
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Thautheme Voir le message
    Bonjour le fil, bonjour le forum,

    @Zoltar, ce que tu dit est vrai toutefois Application.Transpose fonctionne (ne me demande pas pourquoi)...

    @VBA, Un exemple basé sur ton code mais en supprimant les variables de ligne et de colonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro2()
    Dim OS As Worksheet
    Dim OD As Worksheet
    Dim TV As Variant
     
    Set OS = Worksheets("feuilledecalculs")
    Set OD = Worksheets("BData")
    TV = OS.Range(OS.Cells(96, 1), OS.Cells(114, 1)).Value
    OD.Cells(1, 1).Resize(19, 1).Value = TV 'les données sont renvoyées dans la même colonne
    OD.Cells(1, 1).Resize(1, 19).Value = Application.Transpose(TV) 'les données sont renvoyées dans la même ligne
    End Sub
    Je vais regarder.
    Je constate quand même que de passer d'adresses fixes avec des adresses variables génère des erreurs dûes à la syntaxe probablement.
    Merci

  7. #7
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par OrDonc Voir le message
    Bonsoir …
    Dans les possibilités d’Excel,
    Application.WorksheetFunction.truc peut se réduire à Application.truc pour peu que truc est ne fonction précise (liste affichée après la saisie du .)
    Nom : Fonction VBA.jpg
Affichages : 193
Taille : 8,0 Ko

    Un exemple de transposition d’une sélection dans une colonne d’un tableau de la feuille 1 vers la feuille 2 (évènementielle écrite dans le module de la feuille 1)
    Nom : Transpose.jpg
Affichages : 237
Taille : 120,3 Ko
    merci je vais m'en inspirer.

  8. #8
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par zoltar_x Voir le message
    Transpose n'existe pas en VB. C'est une fonction spécifique à Excel. Il faut donc rajouter WorksheetFunction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.Transpose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myArrFin = Application.WorksheetFunction.Transpose(shRead.Range(Cells(4, 1), Cells(4, 3)))
    ne marche pas
    Ni meme avec Worksheet tout court.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/02/2018, 14h46
  2. Réponses: 8
    Dernier message: 25/07/2017, 11h56
  3. Obtenir une colonne d'une Array d'une session
    Par serialkiddy dans le forum CodeIgniter
    Réponses: 2
    Dernier message: 17/03/2017, 10h15
  4. Insérer une colonne dans un array à 2D
    Par christian32 dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2011, 16h35
  5. Réponses: 2
    Dernier message: 25/06/2010, 14h06

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