Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 25-10-2006 12:15:18

Deedoo2000  
Membre Geek
Date d'inscription: 13-09-2006
Messages: 91
Pépites: 408
Banque: 0

[RESOLU] Colonnes Excel

Bonjour,

Ce n'est pas vraiment une question PB mais c'est quelquechose dont j'ai besoin  pour mes scripts, peut être pourrez-vous m'aider.
J'aimerais savoir s'il y a un moyen pas trop colplexe de trouver une correspondance numéro / lettre de colonne dans Excel.

Exemple :

résussir à trouver que la colonne 29 est en fait la colonne "AC", ou bien 15 = O

Merci.

Hors ligne

 

#2 25-10-2006 12:25:42

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Colonnes Excel

comme ca par exemple ?

Accepted Answer from sandeep_patel
Date: 08/23/2006 03:21AM PDT
Grade: A
Accepted Answer

Hi

you can use following code...

Code: pb

integer result, i , j
string ls_read

OLEObject myoleobject
myoleobject = CREATE OLEObject
result = myoleobject.ConnectToObject( "c:\temp\test.xls")

IF result = 0 THEN
     For i = 1 to 2
          for j = 1 to 2 
               ls_read =  myoleobject.application.workbooks(1).worksheets(1).cells(i,j).value
               messagebox('',ls_read)               
          next
     next
//    myoleobject.application.workbooks(1).save()
END IF

DESTROY myoleobject

once you get value of each cell either you can store in array or directly copy to your datawindow row/column and save datawindow to update value in database.

let me know if you have any query.

Regards,
Sandeep


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 25-10-2006 12:31:14

Deedoo2000  
Membre Geek
Date d'inscription: 13-09-2006
Messages: 91
Pépites: 408
Banque: 0

Re: [RESOLU] Colonnes Excel

Je dois m'être mal expliqué. Je ne cherche pas la valeur d'une cellule, mais la correspondance entre numéro de colonne et nom de colonne dans Excel.

Par exemple dans PB je veux selectionner une plage de cellule "C2:O2" mais je ne connais que les coordonnées des cellules des extrémités : cells(2,3) et cells(2,15)
Ma question est : comment savoir que cells(2,15) = O2

Hors ligne

 

#4 25-10-2006 13:38:52

Deedoo2000  
Membre Geek
Date d'inscription: 13-09-2006
Messages: 91
Pépites: 408
Banque: 0

Re: [RESOLU] Colonnes Excel

C'est bon, j'ai fait une bidouille à base de Mod, de Int et de char pour arriver à mes fins

Hors ligne

 

#5 25-10-2006 13:40:07

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Colonnes Excel

hoooooooo tu m'as devancé....
j'étais en train de faire l'algorythme...

tu peux mettre ta reponse pour nous ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#6 25-10-2006 16:58:42

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Colonnes Excel

voici la mienne
pour Avoir l'equivalent de la colonne...

Code: pb

long    ll_colonne, ll_result
decimal  ldc_result
long    ll_i

string  ls_colonne[26]
string  ls_nomcolonne

// je mets ici mon n° de colonne
ll_colonne = 173

for ll_i = 1 to 26
  
  ls_colonne[ll_i] = char(64 + ll_i ) 

next

do while ll_colonne > 26
  ldc_result = ((ll_colonne/26) - int(ll_colonne/26)) * 26
  ll_colonne  = int(ll_colonne/26)
  
  if ldc_result > 0 then
    ls_nomcolonne = ls_colonne[ldc_result] + ls_nomcolonne
  else
    ls_nomcolonne = ls_colonne[26] + ls_nomcolonne
  end if
  
loop

if ll_colonne < 27 then
    ls_nomcolonne = ls_colonne[ll_colonne] + ls_nomcolonne
end if


messagebox("Colonne Excel",ls_nomcolonne)

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 26-10-2006 08:16:43

jdobosz  
crazy geek
Award: jdbozc
Lieu: boulogne billancourt
Date d'inscription: 24-05-2006
Messages: 81
Pépites: 2,241
Banque: 2,700,351,746,124,543

Re: [RESOLU] Colonnes Excel

voici la mienne

Code: pb

long ll,jj
string ls

ls=''
ll= 173 

do while ll > 0
  ll -= 1
  ls = char( mod(ll,26) + 65 )  + ls
  ll = ll / 26
loop 


messagebox("base26",ls)

... après l'avoir modifié 3 fois !

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22