translater certaines colonnes en lignes ? pas si simple
5 réponses
Jean-Claude
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formuler),
voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D
1 classe zone jaune vert
2 aa 01 1 5
3 bb 02 2 6
4 cc 03 3 7
5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D
1 classe zone coul. valeur
2 aa 01 jaune 1
3 aa 01 vert 5
4 bb 02 jaune 2
5 bb 02 vert 6
6 cc 03 jaune 3
7 cc 03 vert 7
8 dd 04 jaune 4
9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas
un expert).
J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10
colonnes, et quelques dizaines de lignes (donc au final plusieurs centaines
par tableau!), et je ne veux pas me lancer dans quelques heures de laborieux
(et risqué en terme d'erreur) travail, s'il y a un autre moyen.
Merci d'avance de votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Bonsoir,
Sub essai() ligne = 2 colonne = 7 For Each c In Range([A2], [a65000].End(xlUp)) Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "jaune" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2) ligne = ligne + 1 Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "vert" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3) ligne = ligne + 1 Next c End Sub
JB
On 21 fév, 18:45, "Jean-Claude" wrote:
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formule r), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centain es par tableau!), et je ne veux pas me lancer dans quelques heures de labori eux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude
Bonsoir,
Sub essai()
ligne = 2
colonne = 7
For Each c In Range([A2], [a65000].End(xlUp))
Cells(ligne, colonne) = c
Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
Cells(ligne, colonne).Offset(0, 2) = "jaune"
Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2)
ligne = ligne + 1
Cells(ligne, colonne) = c
Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
Cells(ligne, colonne).Offset(0, 2) = "vert"
Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3)
ligne = ligne + 1
Next c
End Sub
JB
On 21 fév, 18:45, "Jean-Claude" <repondreenfo...@wanadoo.fr> wrote:
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formule r),
voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D
1 classe zone jaune vert
2 aa 01 1 5
3 bb 02 2 6
4 cc 03 3 7
5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D
1 classe zone coul. valeur
2 aa 01 jaune 1
3 aa 01 vert 5
4 bb 02 jaune 2
5 bb 02 vert 6
6 cc 03 jaune 3
7 cc 03 vert 7
8 dd 04 jaune 4
9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas
un expert).
J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10
colonnes, et quelques dizaines de lignes (donc au final plusieurs centain es
par tableau!), et je ne veux pas me lancer dans quelques heures de labori eux
(et risqué en terme d'erreur) travail, s'il y a un autre moyen.
Merci d'avance de votre aide.
Sub essai() ligne = 2 colonne = 7 For Each c In Range([A2], [a65000].End(xlUp)) Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "jaune" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2) ligne = ligne + 1 Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "vert" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3) ligne = ligne + 1 Next c End Sub
JB
On 21 fév, 18:45, "Jean-Claude" wrote:
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formule r), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centain es par tableau!), et je ne veux pas me lancer dans quelques heures de labori eux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude
JB
Résultat sur feuil2:
http://cjoint.com/?cvtq07OqxU
Sub essai2() ligne = 2 colonne = 1 For Each c In Range([A2], [a65000].End(xlUp)) With Sheets(2) .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = "jaune" .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2) ligne = ligne + 1 .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = "vert" .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3) ligne = ligne + 1 End With Next c End Sub
JB
On 21 fév, 19:09, "JB" wrote:
Bonsoir,
Sub essai() ligne = 2 colonne = 7 For Each c In Range([A2], [a65000].End(xlUp)) Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "jaune" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2) ligne = ligne + 1 Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "vert" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3) ligne = ligne + 1 Next c End Sub
JB
On 21 fév, 18:45, "Jean-Claude" wrote:
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formu ler), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en su is pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu' à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centa ines par tableau!), et je ne veux pas me lancer dans quelques heures de labo rieux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Résultat sur feuil2:
http://cjoint.com/?cvtq07OqxU
Sub essai2()
ligne = 2
colonne = 1
For Each c In Range([A2], [a65000].End(xlUp))
With Sheets(2)
.Cells(ligne, colonne) = c
.Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
.Cells(ligne, colonne).Offset(0, 2) = "jaune"
.Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2)
ligne = ligne + 1
.Cells(ligne, colonne) = c
.Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
.Cells(ligne, colonne).Offset(0, 2) = "vert"
.Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3)
ligne = ligne + 1
End With
Next c
End Sub
JB
On 21 fév, 19:09, "JB" <boisgont...@hotmail.com> wrote:
Bonsoir,
Sub essai()
ligne = 2
colonne = 7
For Each c In Range([A2], [a65000].End(xlUp))
Cells(ligne, colonne) = c
Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
Cells(ligne, colonne).Offset(0, 2) = "jaune"
Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2)
ligne = ligne + 1
Cells(ligne, colonne) = c
Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
Cells(ligne, colonne).Offset(0, 2) = "vert"
Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3)
ligne = ligne + 1
Next c
End Sub
JB
On 21 fév, 18:45, "Jean-Claude" <repondreenfo...@wanadoo.fr> wrote:
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formu ler),
voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D
1 classe zone jaune vert
2 aa 01 1 5
3 bb 02 2 6
4 cc 03 3 7
5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D
1 classe zone coul. valeur
2 aa 01 jaune 1
3 aa 01 vert 5
4 bb 02 jaune 2
5 bb 02 vert 6
6 cc 03 jaune 3
7 cc 03 vert 7
8 dd 04 jaune 4
9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en su is pas
un expert).
J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu' à 10
colonnes, et quelques dizaines de lignes (donc au final plusieurs centa ines
par tableau!), et je ne veux pas me lancer dans quelques heures de labo rieux
(et risqué en terme d'erreur) travail, s'il y a un autre moyen.
Merci d'avance de votre aide.
Jean-Claude- Masquer le texte des messages précédents -
Sub essai2() ligne = 2 colonne = 1 For Each c In Range([A2], [a65000].End(xlUp)) With Sheets(2) .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = "jaune" .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2) ligne = ligne + 1 .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = "vert" .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3) ligne = ligne + 1 End With Next c End Sub
JB
On 21 fév, 19:09, "JB" wrote:
Bonsoir,
Sub essai() ligne = 2 colonne = 7 For Each c In Range([A2], [a65000].End(xlUp)) Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "jaune" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 2) ligne = ligne + 1 Cells(ligne, colonne) = c Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) Cells(ligne, colonne).Offset(0, 2) = "vert" Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, 3) ligne = ligne + 1 Next c End Sub
JB
On 21 fév, 18:45, "Jean-Claude" wrote:
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formu ler), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en su is pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu' à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centa ines par tableau!), et je ne veux pas me lancer dans quelques heures de labo rieux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
garnote
Salut Jean-Claude,
Tentative de généralisation à partir de la macro de JB. Un exemple : jaune vert bleu mauve rouge aa 01 1 7 13 1 7 bb 02 2 8 14 2 6 cc 03 3 9 15 3 5 dd 04 4 10 16 4 3 ee 05 5 11 17 5 4 ff 06 2 2 2 6 7 gg 07 5 5 5 7 9
Sélectionne C1:G8 et appelle cette macro :
Sub essai3() NC = Selection.Columns.Count ligne = 2 colonne = 1 For Each c In Range([A2], [a65000].End(xlUp)) With Sheets(2) For i = 1 To NC .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = Cells(1, i + 2) .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, i + 1) ligne = ligne + 1 Next i End With Next c End Sub
Serge
"Jean-Claude" a écrit dans le message de news: 45dc853c$0$27381$
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formuler), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centaines par tableau!), et je ne veux pas me lancer dans quelques heures de laborieux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude
Salut Jean-Claude,
Tentative de généralisation à partir de la macro de JB.
Un exemple :
jaune vert bleu mauve rouge
aa 01 1 7 13 1 7
bb 02 2 8 14 2 6
cc 03 3 9 15 3 5
dd 04 4 10 16 4 3
ee 05 5 11 17 5 4
ff 06 2 2 2 6 7
gg 07 5 5 5 7 9
Sélectionne C1:G8 et appelle cette macro :
Sub essai3()
NC = Selection.Columns.Count
ligne = 2
colonne = 1
For Each c In Range([A2], [a65000].End(xlUp))
With Sheets(2)
For i = 1 To NC
.Cells(ligne, colonne) = c
.Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
.Cells(ligne, colonne).Offset(0, 2) = Cells(1, i + 2)
.Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, i + 1)
ligne = ligne + 1
Next i
End With
Next c
End Sub
Serge
"Jean-Claude" <repondreenforum@wanadoo.fr> a écrit dans le message de news: 45dc853c$0$27381$ba4acef3@news.orange.fr...
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formuler),
voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D
1 classe zone jaune vert
2 aa 01 1 5
3 bb 02 2 6
4 cc 03 3 7
5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D
1 classe zone coul. valeur
2 aa 01 jaune 1
3 aa 01 vert 5
4 bb 02 jaune 2
5 bb 02 vert 6
6 cc 03 jaune 3
7 cc 03 vert 7
8 dd 04 jaune 4
9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas
un expert).
J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10
colonnes, et quelques dizaines de lignes (donc au final plusieurs centaines
par tableau!), et je ne veux pas me lancer dans quelques heures de laborieux
(et risqué en terme d'erreur) travail, s'il y a un autre moyen.
Merci d'avance de votre aide.
Tentative de généralisation à partir de la macro de JB. Un exemple : jaune vert bleu mauve rouge aa 01 1 7 13 1 7 bb 02 2 8 14 2 6 cc 03 3 9 15 3 5 dd 04 4 10 16 4 3 ee 05 5 11 17 5 4 ff 06 2 2 2 6 7 gg 07 5 5 5 7 9
Sélectionne C1:G8 et appelle cette macro :
Sub essai3() NC = Selection.Columns.Count ligne = 2 colonne = 1 For Each c In Range([A2], [a65000].End(xlUp)) With Sheets(2) For i = 1 To NC .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = Cells(1, i + 2) .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, i + 1) ligne = ligne + 1 Next i End With Next c End Sub
Serge
"Jean-Claude" a écrit dans le message de news: 45dc853c$0$27381$
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formuler), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centaines par tableau!), et je ne veux pas me lancer dans quelques heures de laborieux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude
garnote
Mais comment fait-on pour transmettre un tableau présentable ? Autre tentative :
A B C D E F G jaune vert bleu mauve rouge aa 01 1 7 13 1 7 bb 02 2 8 14 2 6 cc 03 3 9 15 3 5 dd 04 4 10 16 4 3 ee 05 5 11 17 5 4 ff 06 2 2 2 6 7 gg 07 5 5 5 7 9
Serge
"garnote" a écrit dans le message de news: e7MYX%
Salut Jean-Claude,
Tentative de généralisation à partir de la macro de JB. Un exemple : jaune vert bleu mauve rouge aa 01 1 7 13 1 7 bb 02 2 8 14 2 6 cc 03 3 9 15 3 5 dd 04 4 10 16 4 3 ee 05 5 11 17 5 4 ff 06 2 2 2 6 7 gg 07 5 5 5 7 9
Sélectionne C1:G8 et appelle cette macro :
Sub essai3() NC = Selection.Columns.Count ligne = 2 colonne = 1 For Each c In Range([A2], [a65000].End(xlUp)) With Sheets(2) For i = 1 To NC .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = Cells(1, i + 2) .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, i + 1) ligne = ligne + 1 Next i End With Next c End Sub
Serge
"Jean-Claude" a écrit dans le message de news: 45dc853c$0$27381$
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formuler), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centaines par tableau!), et je ne veux pas me lancer dans quelques heures de laborieux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude
Mais comment fait-on pour transmettre un tableau
présentable ? Autre tentative :
A B C D E F G
jaune vert bleu mauve rouge
aa 01 1 7 13 1 7
bb 02 2 8 14 2 6
cc 03 3 9 15 3 5
dd 04 4 10 16 4 3
ee 05 5 11 17 5 4
ff 06 2 2 2 6 7
gg 07 5 5 5 7 9
Serge
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news: e7MYX%23eVHHA.4828@TK2MSFTNGP05.phx.gbl...
Salut Jean-Claude,
Tentative de généralisation à partir de la macro de JB.
Un exemple :
jaune vert bleu mauve rouge
aa 01 1 7 13 1 7
bb 02 2 8 14 2 6
cc 03 3 9 15 3 5
dd 04 4 10 16 4 3
ee 05 5 11 17 5 4
ff 06 2 2 2 6 7
gg 07 5 5 5 7 9
Sélectionne C1:G8 et appelle cette macro :
Sub essai3()
NC = Selection.Columns.Count
ligne = 2
colonne = 1
For Each c In Range([A2], [a65000].End(xlUp))
With Sheets(2)
For i = 1 To NC
.Cells(ligne, colonne) = c
.Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1)
.Cells(ligne, colonne).Offset(0, 2) = Cells(1, i + 2)
.Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, i + 1)
ligne = ligne + 1
Next i
End With
Next c
End Sub
Serge
"Jean-Claude" <repondreenforum@wanadoo.fr> a écrit dans le message de news: 45dc853c$0$27381$ba4acef3@news.orange.fr...
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formuler),
voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D
1 classe zone jaune vert
2 aa 01 1 5
3 bb 02 2 6
4 cc 03 3 7
5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D
1 classe zone coul. valeur
2 aa 01 jaune 1
3 aa 01 vert 5
4 bb 02 jaune 2
5 bb 02 vert 6
6 cc 03 jaune 3
7 cc 03 vert 7
8 dd 04 jaune 4
9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas
un expert).
J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10
colonnes, et quelques dizaines de lignes (donc au final plusieurs centaines
par tableau!), et je ne veux pas me lancer dans quelques heures de laborieux
(et risqué en terme d'erreur) travail, s'il y a un autre moyen.
Merci d'avance de votre aide.
Mais comment fait-on pour transmettre un tableau présentable ? Autre tentative :
A B C D E F G jaune vert bleu mauve rouge aa 01 1 7 13 1 7 bb 02 2 8 14 2 6 cc 03 3 9 15 3 5 dd 04 4 10 16 4 3 ee 05 5 11 17 5 4 ff 06 2 2 2 6 7 gg 07 5 5 5 7 9
Serge
"garnote" a écrit dans le message de news: e7MYX%
Salut Jean-Claude,
Tentative de généralisation à partir de la macro de JB. Un exemple : jaune vert bleu mauve rouge aa 01 1 7 13 1 7 bb 02 2 8 14 2 6 cc 03 3 9 15 3 5 dd 04 4 10 16 4 3 ee 05 5 11 17 5 4 ff 06 2 2 2 6 7 gg 07 5 5 5 7 9
Sélectionne C1:G8 et appelle cette macro :
Sub essai3() NC = Selection.Columns.Count ligne = 2 colonne = 1 For Each c In Range([A2], [a65000].End(xlUp)) With Sheets(2) For i = 1 To NC .Cells(ligne, colonne) = c .Cells(ligne, colonne).Offset(0, 1) = c.Offset(0, 1) .Cells(ligne, colonne).Offset(0, 2) = Cells(1, i + 2) .Cells(ligne, colonne).Offset(0, 3) = c.Offset(0, i + 1) ligne = ligne + 1 Next i End With Next c End Sub
Serge
"Jean-Claude" a écrit dans le message de news: 45dc853c$0$27381$
Bonjour,
plutot qu'un grand discours (que je ne saurais même pas comment formuler), voici un petit exemple de mon problème :
Soit un tableau de la forme :
A B C D 1 classe zone jaune vert 2 aa 01 1 5 3 bb 02 2 6 4 cc 03 3 7 5 dd 04 4 8
Comment puis-je faire pour obtenir le tableau suivant :
A B C D 1 classe zone coul. valeur 2 aa 01 jaune 1 3 aa 01 vert 5 4 bb 02 jaune 2 5 bb 02 vert 6 6 cc 03 jaune 3 7 cc 03 vert 7 8 dd 04 jaune 4 9 dd 04 vert 8
Avec des fonctions existantes de Excel, ou en VBA (même si je n'en suis pas un expert). J'ai de nombreux tableaux à traiter de la sorte, avec chacun jusqu'à 10 colonnes, et quelques dizaines de lignes (donc au final plusieurs centaines par tableau!), et je ne veux pas me lancer dans quelques heures de laborieux (et risqué en terme d'erreur) travail, s'il y a un autre moyen. Merci d'avance de votre aide.
Jean-Claude
Jean-Claude
Merci pour vos réponses, ca fonctionne très bien (avec quelques adaptations pour mes cas précis).
Jean-Claude
Merci pour vos réponses, ca fonctionne très bien (avec quelques adaptations
pour mes cas précis).