Pb des 65000 lignes

Le
jean-francois LEGRAS
Bonjour à vous

J'ai une macro qui m'a pris des dizaines d'heures (voire centaines) à faire
(j'en profite pour une nouvelle fois, remercier tous ceux qui ont pu aider
le pauvre autodidacte que je suis) et je rencontre malheureusement un pb
qui semble insoluble avec Excel 2003 : le nombre max de lignes.

Y a-t-il un autre moyen que de passer sur Excel 2007 pour aller au-delà de
cette limite de 65000 lignes ?

Ce qui m'arrangerait, car avec Excel 2007, ma macro ne fonctionne pas : j'ai
dû déjà réécrire une partie des codes VB (changer tous les noms .xls en
xlsm, pas trop compliqué, mais j'ai un nouveau pb avec les TDB, il ne
reconnaît pas les formats et je ne trouve aucune fonction ; ca semble d'un
compliqué lorsqu'on est habitué à Excel 2003, c'est limite comme découvrir
un nouveau logiciel


Merci d'avance pour vos réponses !

Slts
JF
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20481871
Bonjour Jean-François,

Voici un petit exemple de code pour créer un tableau croisé
dynamique (la plage source du TDC) s'ajuste au fur et à mesure
que la plage des données croit.

'-----------------------------------------------
Sub Creer_Utilisant_Plage_Dynamique()
'Déclaration des variables
Dim Dest As String
Dim Pc As PivotCache
Dim Pt As PivotTable

'Si le TDC existe déjà il faut le supprimer
'avant de relancer la procédure sinon une
'erreur est générée c'est ce pourquoi j'ajoute
'la ligne de code suivante :
'On Error Resume Next
'Feuil1.PivotTables("Denis").TableRange2.Clear

On Error Resume Next
With ActiveWorkbook
'Avec la feuille source des données
'(adapter le nom de la feuille + plage de cellules)
With .Worksheets("feuil1")
'Création du nom pour une plage dynamique
Workbooks(.Parent.Name).Names.Add "Denis", _
"=OFFSET(" & .Name & "!$A$1,,,COUNTA(" & _
.Name & "!$A:$A),COUNTA(" & .Name & "!$1:$1))"
End With
'Avec la feuille où le TDC sera crée :
'adapter le nom de la feuille et la plage de cellule
With .Worksheets("Feuil2")
'Effacer le tdc si il existe
.PivotTables("Denis").TableRange2.Clear
'Définir la cellule où sera créé le TDC
Dest = .Name & "!" & .Range("A4").Address
End With
'Création du PivotCache
Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Denis")
'création du PivotTable
Set Pt = Pc.CreatePivotTable(TableDestination:=Range(Dest), _
TableName:="Denis", DefaultVersion:=xlPivotTableVersion10)
End With

With Pt
'Ajout d'un champ en ligne
.AddFields RowFields:="Étudiant"
'Ajout d'un champ "Data" dans le TDC
.PivotFields("Note").Orientation = xlDataField
End With

End Sub
'-----------------------------------------------



"jean-francois LEGRAS" discussion :
Bonjour à vous

J'ai une macro qui m'a pris des dizaines d'heures (voire centaines) à faire
(j'en profite pour une nouvelle fois, remercier tous ceux qui ont pu aider
le pauvre autodidacte que je suis...) et je rencontre malheureusement un pb
qui semble insoluble avec Excel 2003 : le nombre max de lignes.

Y a-t-il un autre moyen que de passer sur Excel 2007 pour aller au-delà de
cette limite de 65000 lignes ?

Ce qui m'arrangerait, car avec Excel 2007, ma macro ne fonctionne pas : j'ai
dû déjà réécrire une partie des codes VB (changer tous les noms .xls en
xlsm, pas trop compliqué, mais j'ai un nouveau pb avec les TDB, il ne
reconnaît pas les formats et je ne trouve aucune fonction ; ca semble d'un
compliqué lorsqu'on est habitué à Excel 2003, c'est limite comme découvrir
un nouveau logiciel...


Merci d'avance pour vos réponses !

Slts
JF
Publicité
Poster une réponse
Anonyme