OVH Cloud OVH Cloud

Valeurs d'un tableau rectangulaire sur une seule colonne

2 réponses
Avatar
garnote
Bonjour le beau monde que vous êtes,

Un collègue m'a demandé s'il est possible de mettre
les valeurs d'un tableau rectangulaire sur une seule colonne
de la façon suivante. Exemple :
1 3 5
2 4 6
deviendrait
1
2
3
4
5
6
J'ai trouvé ça mais il est rébarbatif aux macros, le salopard :-)
Peut-on procéder autremant ?

Sub MettreSurUneColonne()
On Error Resume Next
Set mat = Application.InputBox("Sélectionnez un tableau rectangulaire :", _
"Votre tableau", , , , , , 8)
NL = mat.Rows.Count
NC = mat.Columns.Count
Set ici = Application.InputBox("Sélectionnez une cellule :", _
"Première cellule", , , , , , 8)
For j = 1 To NC
For i = 1 To NL
k = k + 1
ici(k) = mat(i, j)
Next i
Next j
End Sub

Serge

2 réponses

Avatar
isabelle
bonjour Serge,

vu que tu as dit le beau monde :-) je m'empresse de répondre ;-)

avec l'exemple donnée, en débutant en cellule A1
pour avoir une répétition de ligne 1212121212 j'ai utilisé
=1/((MOD(LIGNE();2)+1)/2)
et pour la répétition de colonne 112233 =ENT((LIGNE()-1)/2)+1

ce qui donne pour la cellule A1 d'une autre feuille
=INDIRECT("Feuil1!"&ADRESSE(1/((MOD(LIGNE();2)+1)/2);ENT((LIGNE()-1)/2)+1))

il faudra faire autrement si la cellule de départ n'est pas A1

isbelle


Bonjour le beau monde que vous êtes,

Un collègue m'a demandé s'il est possible de mettre
les valeurs d'un tableau rectangulaire sur une seule colonne
de la façon suivante. Exemple :
1 3 5
2 4 6
deviendrait
1
2
3
4
5
6
J'ai trouvé ça mais il est rébarbatif aux macros, le salopard :-)
Peut-on procéder autremant ?

Sub MettreSurUneColonne()
On Error Resume Next
Set mat = Application.InputBox("Sélectionnez un tableau rectangulaire :", _
"Votre tableau", , , , , , 8)
NL = mat.Rows.Count
NC = mat.Columns.Count
Set ici = Application.InputBox("Sélectionnez une cellule :", _
"Première cellule", , , , , , 8)
For j = 1 To NC
For i = 1 To NL
k = k + 1
ici(k) = mat(i, j)
Next i
Next j
End Sub

Serge


Avatar
garnote
:-)

Méchante formule !
Quand j'aurai compris tous ses tenants et
aboutissants, je finirai peut-être par la
généraliser à un tableau rectangulaire de
dimensions quelconques et la faire fonctionner
sur la feuille contenant le tableau.
Des heures de plaisir en perspective !


Serge

"isabelle" a écrit dans le message de news:

bonjour Serge,

vu que tu as dit le beau monde :-) je m'empresse de répondre ;-)

avec l'exemple donnée, en débutant en cellule A1
pour avoir une répétition de ligne 1212121212 j'ai utilisé
=1/((MOD(LIGNE();2)+1)/2)
et pour la répétition de colonne 112233 =ENT((LIGNE()-1)/2)+1

ce qui donne pour la cellule A1 d'une autre feuille

=INDIRECT("Feuil1!"&ADRESSE(1/((MOD(LIGNE();2)+1)/2);ENT((LIGNE()-1)/2)+1))


il faudra faire autrement si la cellule de départ n'est pas A1

isbelle


Bonjour le beau monde que vous êtes,

Un collègue m'a demandé s'il est possible de mettre
les valeurs d'un tableau rectangulaire sur une seule colonne
de la façon suivante. Exemple :
1 3 5
2 4 6
deviendrait
1
2
3
4
5
6
J'ai trouvé ça mais il est rébarbatif aux macros, le salopard :-)
Peut-on procéder autremant ?

Sub MettreSurUneColonne()
On Error Resume Next
Set mat = Application.InputBox("Sélectionnez un tableau rectangulaire
:", _


"Votre tableau", , , , , , 8)
NL = mat.Rows.Count
NC = mat.Columns.Count
Set ici = Application.InputBox("Sélectionnez une cellule :", _
"Première cellule", , , , , , 8)
For j = 1 To NC
For i = 1 To NL
k = k + 1
ici(k) = mat(i, j)
Next i
Next j
End Sub

Serge