Tableau d'association

Résolu/Fermé
DR.Morpheus Messages postés 480 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 octobre 2012 - Modifié par DR.Morpheus le 26/12/2010 à 11:19
DR.Morpheus Messages postés 480 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 octobre 2012 - 27 déc. 2010 à 14:48
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

A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
27 déc. 2010 à 10:13
Bonjour,

j'ai cherché en vain une formule matricielle mais...
donc par VBA avec excel restition colonne F,G
Sub 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
0
DR.Morpheus Messages postés 480 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 octobre 2012 83
27 déc. 2010 à 12:18
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 .
0
DR.Morpheus Messages postés 480 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 octobre 2012 83
27 déc. 2010 à 14:48
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 .
0
DR.Morpheus Messages postés 480 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 octobre 2012 83
27 déc. 2010 à 11:09
merci énormément du temps que vous avez consacré à mon problème,

je test votre script et reviens vers vous :)
0