Affectation d'un range à une table avec transposition
4 réponses
Trirème
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout
en transposant les données.
Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos")
de faire un truc du genre : Infos = Range("Infos").Transpose
ou bien Infos = Transpose(Range("Infos"))
(bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille
C x L.
Sinon il faudra je pense passer par des boucles, nan ?
"> Sinon il faudra je pense passer par des boucles, nan ?
Bonsoir. Ou par une plage de cellules intermédiaire ? Cordialement. Daniel
Daniel
Remarque que ta méthode est la bonne : toto = Application.Transpose(Range("A1:B5")) Daniel "Trirème" a écrit dans le message de news:
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout en transposant les données. Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos") de faire un truc du genre : Infos = Range("Infos").Transpose ou bien Infos = Transpose(Range("Infos")) (bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille C x L. Sinon il faudra je pense passer par des boucles, nan ?
Cordialement, -- Trirème
Remarque que ta méthode est la bonne :
toto = Application.Transpose(Range("A1:B5"))
Daniel
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de news:
u3WUj6MwHHA.4332@TK2MSFTNGP06.phx.gbl...
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs
d'une plage tout en transposant les données.
Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos")
de faire un truc du genre : Infos = Range("Infos").Transpose
ou bien Infos = Transpose(Range("Infos"))
(bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une
table de taille
C x L.
Sinon il faudra je pense passer par des boucles, nan ?
Remarque que ta méthode est la bonne : toto = Application.Transpose(Range("A1:B5")) Daniel "Trirème" a écrit dans le message de news:
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout en transposant les données. Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos") de faire un truc du genre : Infos = Range("Infos").Transpose ou bien Infos = Transpose(Range("Infos")) (bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille C x L. Sinon il faudra je pense passer par des boucles, nan ?
Cordialement, -- Trirème
MichDenis
c = Application.Transpose(Range("A1:C4"))
Pour transposer C vers la plage E10 ... Range("E10").Resize(UBound(c, 1), UBound(c, 2)) = c
"Trirème" a écrit dans le message de news:
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout en transposant les données. Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos") de faire un truc du genre : Infos = Range("Infos").Transpose ou bien Infos = Transpose(Range("Infos")) (bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille C x L. Sinon il faudra je pense passer par des boucles, nan ?
Cordialement, -- Trirème
c = Application.Transpose(Range("A1:C4"))
Pour transposer C vers la plage E10 ...
Range("E10").Resize(UBound(c, 1), UBound(c, 2)) = c
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de news:
u3WUj6MwHHA.4332@TK2MSFTNGP06.phx.gbl...
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout
en transposant les données.
Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos")
de faire un truc du genre : Infos = Range("Infos").Transpose
ou bien Infos = Transpose(Range("Infos"))
(bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille
C x L.
Sinon il faudra je pense passer par des boucles, nan ?
Pour transposer C vers la plage E10 ... Range("E10").Resize(UBound(c, 1), UBound(c, 2)) = c
"Trirème" a écrit dans le message de news:
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout en transposant les données. Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos") de faire un truc du genre : Infos = Range("Infos").Transpose ou bien Infos = Transpose(Range("Infos")) (bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille C x L. Sinon il faudra je pense passer par des boucles, nan ?
Cordialement, -- Trirème
Trirème
Merci Daniel et MichDenis,
Y a pas à dire, c'est toujours le petit plus qui fait la différence et qui justifie de passer faire un tour ici.
Le complément de réponse de Mich m'a incité à me poser la question complémentaire : C'est en fait la question inverse (résolue), comment faire pour écrire le contenu de ma table C x L (après quelques traitements) vers la plage initiale de taille L x C ? Pourquoi pas essayer aussi la fonction Transpose() ? Alors là je suis sur le c.. ! Ça marche aussi. La fonction Transpose() n'est-elle pas qu'une fonction de feuille de calcul ?
' J'ai donc au final : Infos = Application.Transpose(Range("Infos")) ' C x L <-- L x C ' Traitements Range("Infos") = Application.Transpose(Infos) ' L x C <-- C x L
Cool, Bon dimanche et merci encore, Trirème
PS J'ai d'autres questions sur l'usage des tables, des listes... qui feront l'objet d'autres fils.
c = Application.Transpose(Range("A1:C4"))
Pour transposer C vers la plage E10 ... Range("E10").Resize(UBound(c, 1), UBound(c, 2)) = c
"Trirème" a écrit dans le message de news:
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout en transposant les données. Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos") de faire un truc du genre : Infos = Range("Infos").Transpose ou bien Infos = Transpose(Range("Infos")) (bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille C x L. Sinon il faudra je pense passer par des boucles, nan ?
Cordialement,
Merci Daniel et MichDenis,
Y a pas à dire, c'est toujours le petit plus qui fait la différence et qui justifie de
passer faire un tour ici.
Le complément de réponse de Mich m'a incité à me poser la question complémentaire :
C'est en fait la question inverse (résolue), comment faire pour écrire le contenu de ma
table C x L (après quelques traitements) vers la plage initiale de taille L x C ?
Pourquoi pas essayer aussi la fonction Transpose() ?
Alors là je suis sur le c.. ! Ça marche aussi. La fonction Transpose() n'est-elle pas
qu'une fonction de feuille de calcul ?
' J'ai donc au final :
Infos = Application.Transpose(Range("Infos")) ' C x L <-- L x C
' Traitements
Range("Infos") = Application.Transpose(Infos) ' L x C <-- C x L
Cool,
Bon dimanche et merci encore,
Trirème
PS J'ai d'autres questions sur l'usage des tables, des listes... qui feront l'objet
d'autres fils.
c = Application.Transpose(Range("A1:C4"))
Pour transposer C vers la plage E10 ...
Range("E10").Resize(UBound(c, 1), UBound(c, 2)) = c
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de news:
u3WUj6MwHHA.4332@TK2MSFTNGP06.phx.gbl...
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout
en transposant les données.
Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos")
de faire un truc du genre : Infos = Range("Infos").Transpose
ou bien Infos = Transpose(Range("Infos"))
(bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille
C x L.
Sinon il faudra je pense passer par des boucles, nan ?
Y a pas à dire, c'est toujours le petit plus qui fait la différence et qui justifie de passer faire un tour ici.
Le complément de réponse de Mich m'a incité à me poser la question complémentaire : C'est en fait la question inverse (résolue), comment faire pour écrire le contenu de ma table C x L (après quelques traitements) vers la plage initiale de taille L x C ? Pourquoi pas essayer aussi la fonction Transpose() ? Alors là je suis sur le c.. ! Ça marche aussi. La fonction Transpose() n'est-elle pas qu'une fonction de feuille de calcul ?
' J'ai donc au final : Infos = Application.Transpose(Range("Infos")) ' C x L <-- L x C ' Traitements Range("Infos") = Application.Transpose(Infos) ' L x C <-- C x L
Cool, Bon dimanche et merci encore, Trirème
PS J'ai d'autres questions sur l'usage des tables, des listes... qui feront l'objet d'autres fils.
c = Application.Transpose(Range("A1:C4"))
Pour transposer C vers la plage E10 ... Range("E10").Resize(UBound(c, 1), UBound(c, 2)) = c
"Trirème" a écrit dans le message de news:
Bonsoir M'sieurs Dames,
En VBA, je cherche à faire concis pour affecter à une table les valeurs d'une plage tout en transposant les données. Y-a-t'il moyen, de la même façon que l'on écrit : Infos = Range("Infos") de faire un truc du genre : Infos = Range("Infos").Transpose ou bien Infos = Transpose(Range("Infos")) (bien sûr j'ai essayé)
Ainsi, les données d'une plage de taille L x C seraient affectées à une table de taille C x L. Sinon il faudra je pense passer par des boucles, nan ?