Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb des 65000 lignes

1 réponse
Avatar
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

1 réponse

Avatar
michdenis
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" a écrit dans le message de groupe de
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