Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Re: Ecriture d'un résultat en ligne

4 réponses
Avatar
bibi
Re bonjour
la formule donnée ci dessous ne fonctionne pas comme je l'entends. Elle
renvoie bien le résultat
en ligne. Toutefois, elle ne renvoie que le résultat du premier indice de
l'array ,
mais répété x fois !
Exemple
Lundi, lundi, lundi, lundi
au lieu de
lundi, matin, midi, soir

Merci d'avance de votre aide


Andrew
>
>>
>> "michdenis" <michdenis@hotmail.com> a écrit dans le message de
>> news:OYY3FiqjJHA.4028@TK2MSFTNGP03.phx.gbl...
>>> Range("B1:B" & UBound(MyArray) + 1) = MyArray
>>>
>>>
>>>
>>> "bibi" <anducrot@hotmail.com> a écrit dans le message de groupe de
>>> discussion :
>>> 4996c494$1_6@news.bluewin.ch...
>>> bonjour à toutes et à tous
>>>
>>> j'ai trouvé une fonction sur internet qui permet de trier dans un
>>> tableau
>>> Array des données de type variant ou autre. Cette macro fonctionne
>>> parfaitement et se termine par cette dernière instruction
>>>
>>> Range("B1:B" & UBound(MyArray) + 1) =
>>> WorksheetFunction.Transpose(MyArray)
>>>
>>> et j'obtiens un résultat " Vertical" c'est-à-dire dans une colonne alors
>>> que
>>> j'aimerais résultat s'écrive sur un ligne.
>>>
>>> Je ne sais pas comment modifié mon code.
>>>
>>> Avec mes remerciements
>>>
>>> Andrew
>>>
>>
> "michdenis" <michdenis@hotmail.com> a écrit dans le message de
> news:OYY3FiqjJHA.4028@TK2MSFTNGP03.phx.gbl...
>> Range("B1:B" & UBound(MyArray) + 1) = MyArray
>>
>>
>>
>> "bibi" <anducrot@hotmail.com> a écrit dans le message de groupe de
>> discussion :
>> 4996c494$1_6@news.bluewin.ch...
>> bonjour à toutes et à tous
>>
>> j'ai trouvé une fonction sur internet qui permet de trier dans un
>> tableau
>> Array des données de type variant ou autre. Cette macro fonctionne
>> parfaitement et se termine par cette dernière instruction
>>
>> Range("B1:B" & UBound(MyArray) + 1) =
>> WorksheetFunction.Transpose(MyArray)
>>
>> et j'obtiens un résultat " Vertical" c'est-à-dire dans une colonne alors
>> que
>> j'aimerais résultat s'écrive sur un ligne.
>>
>> Je ne sais pas comment modifié mon code.
>>
>> Avec mes remerciements
>>
>> Andrew
>>
>

4 réponses

Avatar
François
> Re bonjour
la formule donnée ci dessous ne fonctionne pas comme je l'entends. Elle
renvoie bien le résultat
en ligne. Toutefois, elle ne renvoie que le résultat du premier indice de
l'array ,
mais répété x fois !
Exemple
Lundi, lundi, lundi, lundi
au lieu de
lundi, matin, midi, soir



Merci d'avance de votre aide



Bonjour,

Si tu n'avais pas créé un nouveau fil, je pense que tu aurais vu la
réponse de JB.
;-)

--
Amicalement

Si Superman est vraiment intelligent, pourquoi met-il son slip sur son
pantalon?
Avatar
michdenis
Écoute Bibi, Tu peux faire un copier-coller du message de ta première intervention,
tu ne fais pas avancer ta cause :

| Range("B1:B" & UBound(MyArray) + 1) = WorksheetFunction.Transpose(MyArray)
Ta question originale faisait référence à un tableau à UNE DIMENSION

D'où l'exemple que je t'ai donné : Tableau : UNE DIMENSION
'----------------------------------
Sub test()
Dim MyArr()
MyArr = Array("denis", "Diane", "Lise")
Range("A1").Resize(, UBound(MyArr) + 1) = MyArr
End Sub
'----------------------------------

Si ton tableau représente par exemple une colonne de données
de ta feuille de calcul et que tu veuilles la copier sur une seule
ligne, ton tableau est UN TABLEAU À 2 DIMENSIONS et cela
modifie la ligne de code à utiliser :

Ta ligne de code origninal :
| Range("B1:B" & UBound(MyArray) + 1) = WorksheetFunction.Transpose(MyArray)
Correction à appliquer :
Range("B1").Resize(, UBound(MyArray, 1)) = Application.Transpose(MyArray)
Avatar
bibi
Avec toutes mes excuses aux membre de ce forum

Si j'ai envoyé plusieurs fois le même message, ce provient du fait que je ne
" les voyais pas" et j'ai par conséquent j'ai fait un nouvel envoi.
Je sais que ce groupe a des partenaires solides et je voulais surtout pas
les gèner

Désoéà pour le désagrément causé

Andrew alias bibi

Je pense à particulier Michedenis

"michdenis" a écrit dans le message de
news:
Écoute Bibi, Tu peux faire un copier-coller du message de ta première
intervention,
tu ne fais pas avancer ta cause :

| Range("B1:B" & UBound(MyArray) + 1) =
WorksheetFunction.Transpose(MyArray)
Ta question originale faisait référence à un tableau à UNE DIMENSION

D'où l'exemple que je t'ai donné : Tableau : UNE DIMENSION
'----------------------------------
Sub test()
Dim MyArr()
MyArr = Array("denis", "Diane", "Lise")
Range("A1").Resize(, UBound(MyArr) + 1) = MyArr
End Sub
'----------------------------------

Si ton tableau représente par exemple une colonne de données
de ta feuille de calcul et que tu veuilles la copier sur une seule
ligne, ton tableau est UN TABLEAU À 2 DIMENSIONS et cela
modifie la ligne de code à utiliser :

Ta ligne de code origninal :
| Range("B1:B" & UBound(MyArray) + 1) =
WorksheetFunction.Transpose(MyArray)
Correction à appliquer :
Range("B1").Resize(, UBound(MyArray, 1)) = Application.Transpose(MyArray)




Avatar
bibi
Re bonjour Michdenis

Le code ci-dessous marche absolument comme je le souhaite

merci de ta patience

Bibi

qui a laissé partir le dernier message avec d' ENORMES fautes tant il était
fâché contre lui


"bibi" a écrit dans le message de
news:499834f8$
Avec toutes mes excuses aux membre de ce forum

Si j'ai envoyé plusieurs fois le même message, ce provient du fait que je
ne " les voyais pas" et j'ai par conséquent j'ai fait un nouvel envoi.
Je sais que ce groupe a des partenaires solides et je voulais surtout pas
les gèner

Désoéà pour le désagrément causé

Andrew alias bibi

Je pense à particulier Michedenis

"michdenis" a écrit dans le message de
news:
Écoute Bibi, Tu peux faire un copier-coller du message de ta première
intervention,
tu ne fais pas avancer ta cause :

| Range("B1:B" & UBound(MyArray) + 1) =
WorksheetFunction.Transpose(MyArray)
Ta question originale faisait référence à un tableau à UNE DIMENSION

D'où l'exemple que je t'ai donné : Tableau : UNE DIMENSION
'----------------------------------
Sub test()
Dim MyArr()
MyArr = Array("denis", "Diane", "Lise")
Range("A1").Resize(, UBound(MyArr) + 1) = MyArr
End Sub
'----------------------------------

Si ton tableau représente par exemple une colonne de données
de ta feuille de calcul et que tu veuilles la copier sur une seule
ligne, ton tableau est UN TABLEAU À 2 DIMENSIONS et cela
modifie la ligne de code à utiliser :

Ta ligne de code origninal :
| Range("B1:B" & UBound(MyArray) + 1) =
WorksheetFunction.Transpose(MyArray)
Correction à appliquer :
Range("B1").Resize(, UBound(MyArray, 1)) = Application.Transpose(MyArray)