Page 1 sur 1
calcul du nombre de colonnes

Publié:
04 Juin 2003 à 10:56
par leila
ce programme me répond l'erreur suivante : " subscript out of range", en fait, je veux calculer le nbre de colonnes existantes sous excel et retourner un tableau contenant ces noms de colonnes.D'ou vient l'erreur? comment je dois faire pour la corriger? MERCIIIIIIISub ListeColonnes ( tCol() As String, maxcols As Integer) Dim i As Integer Dim xlsObject As Variant Dim xlsWorkBook As Variant Dim xlsSheet As Variant ' Procedure permettant de compter le nombre total de colonnes existantes sous excel ' et récupération de celles-ci dans un tableau nommé tCol 'initialisation des parametres Set xlsObject = CreateObject( "Excel.Application" ) ' Ouverture du fichier. En retour, on récupère le classeur Set xlsWorkBook = OpenXlsFile ("C:\Cathytest.xls", xlsObject) xlsObject.Visible = False ' Récupération de la feuille data Set xlsSheet = xlsWorkbook.Worksheets("Data") ' tant que la cellule est non vide, récuperer le contenu de celle-ci i = 0 Do While xlsSheet.Cells (1, i +1).Value <> " " maxcols = i tCol(i+1) = xlsSheet.Cells (1, i +1 ).Value i = i + 1 Loop Redim tCol(maxcols)As String End Sub
Re: calcul du nombre de colonnes

Publié:
04 Juin 2003 à 11:17
par Raziel
Plusieurs choses:1. Es tu sur que la ligneDo While xlsSheet.Cells (1, i +1).Value <> " " ne va pas engendrer un indice > à l'indice max de ton tableau tabCol2. Pk ajoute tu +1 à l'indice lors de l'ajout de tabcol ? Si ton tableau commence à 0, le fait de commencer à 0 fait que ton tableau ne peut contenir que ubound(tabCol) - 1 élement3. La ligne Redim tCol(maxcols)As String supprime le contenu de ton tableau
Re: calcul du nombre de colonnes

Publié:
04 Juin 2003 à 11:36
par Stephane Maillard
Bonjour,Voici un code VBA à transcrire en LotusScript qui retourne le nombre de colonnes :Function NbColonne() As Variant Dim j As Range ActiveCell.SpecialCells(11).Select ' 11 conrrespond à xlLastCell (Const xlLastCell = 11) DerCell = ActiveCell.Address Set j = Range("A1:" & DerCell) NbColonne = j.Columns.CountEnd FunctionSub test() Call MsgBox("Nombre de colonne : " & NbColonne, vbInformation + vbOKOnly, "NB Colonnes")End SubAprès il n'y à plus de difficulté pour remplir le tableau avec ce que tu veux.[%sig%]
Re: calcul du nombre de colonnes

Publié:
05 Juin 2003 à 13:45
par leila
Merci beaucoup pour votre réponse M.Maillard mais le probleme est que je ne connais pas le langage VB, donc je sais pas comment traduire ces lignes de codes en LotusScript.Pourriez vous m'aider?Désolée de vous embêter mais j'en ai vraiment besoin!!!!MerciiiiLeila
Re: calcul du nombre de colonnes

Publié:
05 Juin 2003 à 14:28
par Stephane Maillard
Bonjour,Cela devrait donnée ceci

im xlsRange As VariantxlsSheet.ActiveCells(11).SelectDerCell = xlsSheet.ActiveCell.AddressSet xlsRange = xlsSheet.Range("A1:" & DerCell)NbColonne = xlsRange.Columns.CountMessagebox "Nombre de colonne : " & NbColonne[%sig%]
Re: calcul du nombre de colonnes

Publié:
05 Juin 2003 à 15:28
par leila
MERCI beaucoup !!!!je vais tester et je vous dirai si ca a marchéMerci encore!!!Leila
Re: calcul du nombre de colonnes

Publié:
05 Juin 2003 à 16:20
par leila
en fait, j'ai testé les lignes de code, mais le probleme est que:xlsSheet.ActiveCells(i).Select n'existe pas!en fait j'aimerais faire la boucle suivante mais elle ne fonctionne pas:i = 1 'car le tableau excel commence a l'indice 1 et pas 0Do While xlsSheet.Cells(1,i).Value <> " " tCol(i) = xlsSheet.Cells(1,i).Valuei = i + 1LoopMais ca ne marche pas.... POURQUOI????
Re: calcul du nombre de colonnes

Publié:
05 Juin 2003 à 19:40
par Stephane Maillard
Re,ActiveCells(11).Select et i car 11 est une constante qui correspond à xlLastCell.J'ai fait une erreur ActiveCells n'est pas le xlSheet. Vous devez essayer avec xlsObject ou xlsWorkBook.[%sig%]
Re: calcul du nombre de colonnes

Publié:
06 Juin 2003 à 09:22
par leila
désolée de vous déranger encore mais je n'ai pas tres bien compris votre rectifiation et votre explication