Transposer un tableau avec ubount

Bonsoir, une question facile !

j'ai trouvé cette ligne code qui copie le tableau TabTiti dans une colonne excel commençant en E5. Je voudrais faire la même chose mais en copiant sur une ligne. A priori je pensais que c'était la méthode transpose qui convertissait la copie en colonne mais en supprimant cette méthode ca ne marche pas. Quelle modification je dois faire dans cette procédure pour copier ce tableau dans une ligne.

Merci pour l'aide. Je pense que la question est toute bête

Sub essai()

Dim i As Integer

Dim TabTiti(1 To 10) As Integer

TabTiti(1) = 3

TabTiti(2) = 5

TabTiti(3) = 2

TabTiti(4) = 9

TabTiti(5) = 1

TabTiti(6) = 4

TabTiti(7) = 8

TabTiti(8) = 6

TabTiti(9) = 7

TabTiti(10) = 10

Cells(1, 5).Resize(UBound(TabTiti)) = Application.Transpose(TabTiti)

End Sub

Sub essai()
Dim i As Integer
Dim TabTiti(1 To 10, 1 To 1) As Integer
TabTiti(1, 1) = 3
TabTiti(2, 1) = 5
TabTiti(3, 1) = 2
TabTiti(4, 1) = 9
TabTiti(5, 1) = 1
TabTiti(6, 1) = 4
TabTiti(7, 1) = 8
TabTiti(8, 1) = 6
TabTiti(9, 1) = 7
TabTiti(10, 1) = 10
Cells(1, 5).Resize(UBound(TabTiti, 1)) = TabTiti
End Sub

Bonsoir,

Pour compléter l'explication ( ) de d3d9x (salut !) quand tu as un tableau unidimensionnel tu le mets directement sur une seule ligne, mais tu dois le transposer pour le mettre en colonne (une seule).

Si ton tableau à 2 dimensions, la première indiquera les lignes et la seconde les colonnes lors de l'affectation. Donc pour ne pas avoir à transposer, tu peux toujours ajouter une 2e dimension ne comportant qu'un seul indice.

Cordialement.

merci pour la réponse mais ce code fait la même chose que le précédent. Il me copie les valeurs dans une colonne pas une ligne

Merci quand même pour l'aide

Justement, pour l'avoir sur une seule ligne, tu gardes ta première macro et tu ne transpose pas !

Bonsoir,

voici la macro telle que je l'ai écrite. Elle me restitue une colonne de 10 chiffre 3. En fait elle me copie 10 fois la première valeur du tableau en colonne. Où est mon erreur ? J'ai excel 2003

Sub essai()

Dim i As Integer

Dim TabTiti(1 To 10) As Integer

TabTiti(1) = 3

TabTiti(2) = 5

TabTiti(3) = 2

TabTiti(4) = 9

TabTiti(5) = 1

TabTiti(6) = 4

TabTiti(7) = 8

TabTiti(8) = 6

TabTiti(9) = 7

TabTiti(10) = 10

Cells(1, 5).Resize(UBound(TabTiti)) = TabTiti

End Sub

Evidemment ! tu veux une ligne mais tu lui donnes une colonne à remplir !

Dimensionne ainsi :

Cells(1, 5).Resize(, UBound(TabTiti))

(tu mets une virgule devant UBound).

Oui ca y est ca marche,

c'est toujours un peu subtile les tableaux quand on a pas l'habitude.

Question complémentaire est-ce que cette macro est plus rapide qu'un balayage des valeurs avec une boucle for next

du type

for i=1 to 10

cells(1,i) = tabtiti(i)

next i

merci pour votre aide en tout cas

Elle doit l'être très légèrement plus, il faudrait mesurer...

Avec de petits nombres d'opérations, ça reste insensible.

OK pas si évident de savoir donc

merci pour l'aide

Rechercher des sujets similaires à "transposer tableau ubount"