Mathias Michel a écrit :
Le 07/11/07, Michel Grentzinger<[EMAIL PROTECTED]> a écrit :
Hors cerrtaines colonnes de cette plage seront ammenées à être inversées ou à
être supprimées donc ma solution actuelle n'est pas fiable car uneLigne(2) va
renvoyer un contenu inadapté...
Je souhaite donc utiliser l'en-tête des colonnes (Rang, Nom, Prénom, Date) au
lieu du numéro...
Par exemple
sMessage = uneLigne(Colonne_Nom)
avec Colonne_Nom contenant le numéro de la colonne dont l'en-tête
contient "Nom".

Je sèche avec les tableaux... Quelqu'un peut-il me mettre sur la bonne piste ?

PS : je cherche une telle solution "rapide" car je dois traiter 8 tableaux de
100 lignes x 10 colonnes...
--

Bonjour,

Pourquoi ne pas utiliser les fonctions de Calc ?
RECHERCHEH devrait faire l'affaire.

=RECHERCHEH(La_zone_du_tableau; adresse_de_la_cellule_contenant_le nom_de_colonne; adresse_de_la_cellule_contenant_le_numero_de_ligne; 0)

ensuite, ta macro modifie simplement les cellules contenant le nom de la colonne et le numéro de ligne
et tu récupère le résultat de la formule =RECHERCHEV(...)

------------------------------------------------------------------------------

Autre solution par macro :
la recherche est assez bestiale. Je voulais améliorer tout ça en conservant le résultat de la première recherche dans un cache, ce qui devrait booster les performances.

cacheMnemo as string
dim cacheNumColForMnemo(100) as integer

Function ColNumForMnemo(aMnemo as string) as integer
   dim colNum as integer
   dim rowNum as integer
   dim colName as string
   dim findCol as boolean
colNum = 0
   rowNum = 0 ' numero de la ligne contenant les entetes
   findCol = false
   with TheSheet
       do until .getCellByPosition(colNum, rowNum).string = ""
              colName = .getCellByPosition(colNum, rowNum).string
              if colName = aMnemo then
               findCol = true
                  exit do
              end if
           colNum = colNum + 1
       loop
   end with
if findCol then
       ColNumForMnemo() = colNum
   else
       ColNumForMnemo() = -1
   end if

End Function

------------------------------------------------------------------------------

En espérant que ça puisse t'aider

a+

Bob

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à