Tableau d'association
Résolu
DR.Morpheus
Messages postés
502
Statut
Membre
-
DR.Morpheus Messages postés 502 Statut Membre -
DR.Morpheus Messages postés 502 Statut Membre -
Bonjour,
sous exel ou sous openoffice
j'ai un tableau dans ce genre la :
- A B C D
1 * - * -
2 - * - -
3 - * * -
4 - - - *
je souhaiterai extraire les données automatiquement et afficher ceci :
Lettre Chiffre
A 1
B 2
B 3
C 1
C 3
D 4
je pense qu'il faut faire une sorte de =recherchev() mais je ne sai pas comment l'écrire
merci a l'avance de votre aide
sous exel ou sous openoffice
j'ai un tableau dans ce genre la :
- A B C D
1 * - * -
2 - * - -
3 - * * -
4 - - - *
je souhaiterai extraire les données automatiquement et afficher ceci :
Lettre Chiffre
A 1
B 2
B 3
C 1
C 3
D 4
je pense qu'il faut faire une sorte de =recherchev() mais je ne sai pas comment l'écrire
merci a l'avance de votre aide
2 réponses
-
Bonjour,
j'ai cherché en vain une formule matricielle mais...
donc par VBA avec excel restition colonne F,GSub transposer() lig = 65536 col = "IV" nbre = Application.CountIf(Range("A1:D4"), "*") For cptr = 1 To nbre adresse = Cells.Find("*", Cells(lig, col), , , xlByColumns).Address col = Range(adresse).Column lig = Range(adresse).Row Cells(cptr, "F") = Chr(col + 64) Cells(cptr, "G") = lig Next End Sub
maquette
https://www.cjoint.com/?0mBkmmofoKU-
alors merci beaucoup pour ce script qui fais en grande parti ce que je souhaite cependant mon tableau plus haut était un exemple de colonne et ligne "ABCD" et "1234" sont des données texte
autre exemple:
----------|marie|Bernard|Charles|Denis|
|lapins|---*---- |---*------|---*------|---*----|
|poule|----------|---*------|----------|--------|
|choux|---*------|---*-----|---*------|---*----|
|chien|---*------|----------|----------|---*----|
malheureusement étant en début de formation informatique je n'est pas encore abordés le VBA
d'après ce que je peu comprendre a première vue c'est que "col" et "lig" corresponde a l'adresse des ligne et colonne tu tableau . donc logiquement il faudrait les remplacer par des données incrémentés par une boucle du genre col = A1 deuxième boucle col = B1 etc ...
mais je ne sait pas comment l'écrire.
je vous remercie encore de l'intérêt que vous porté a mon soucis . et merci de m'aider une fois de plus . -
après quelques bidouillages je suis arrivé a comprendre le fonctionnement et as faire quelques chose qui correspond a ce que je cherchai . je ne doute pas une seconde que mon script n'est pas du tout conventionnel ^^ surtout pour le "=" mais bon voici le code si ça peu en aider quelques un :
Sub transposer()
lig = 65536
col = "V"
nbre = Application.CountIf(Range("B2:E5"), "§")
For Cptr = 1 To nbre
adresse = Cells.Find("§", Cells(lig, col), , , xlByColumns).Address
col = Range(adresse).Column
lig = Range(adresse).Row
egale = "="
Cells(Cptr, "G") = egale & Chr(col + 64) & 1
Cells(Cptr, "H") = egale & "A" & lig
Next
End Sub
merci énormément michel_m tu est mon sauveur du jour :) très joyeuses fêtes a toi .
-
-
merci énormément du temps que vous avez consacré à mon problème,
je test votre script et reviens vers vous :)