Une base de données un peu lourde...?

jmeu

XLDnaute Nouveau
Bonjour,

Pour mon activité professionnelle j'ai crée une base de données afin de recenser les bons de commandes, les demandes d'achat... De plus, cette base de données me permet de gagner du temps pour remplir mes documents de base. Merci Excel!!
Toutefois je trouve que cette base est un peu lourde. Il est vrai que je l'ai construite de façon empirique. (merci excel-downloads.com!!)et le problème peut éventuellement venir de là.

en tout cas, j'ai donc un fichier de 1.18 Mo. Si vous êtes intéresse et voulais y jeter un œil, vous pouvez le télécharger sur le lien suivant:
Base de données.xls - File Shared from Box.net - Free Online File Storage
Je me ferai une joie d'expliquer l'objectif et la construction de ce fichier.

Pour des conseils je suis preneur.
Merci et bien à vous.
 

PMO2

XLDnaute Accro
Re : Une base de données un peu lourde...?

Bonjour,

Vérifiez, au moyen de la macro EtatPlage, les nombres de lignes et de colonnes de chacune des feuilles de votre base de données et voyez si vous pouvez éliminer les superflues.

Copiez le code suivant dans un module Standard

Code:
Sub EtatPlage()
Dim R As Range
ActiveWindow.View = xlNormalView
Set R = ActiveSheet.UsedRange
R.Select
MsgBox "Adresse de la plage : " & R.Address(False, False) & vbCrLf & _
       "Nombre de colonnes : " & R.Columns.Count & vbCrLf & _
       "Nombre de lignes : " & R.Rows.Count
End Sub

J'ai trouvé, par exemple, dans la feuille CBA 9693 lignes sur 256 colonnes.

Cordialement.

PMO
Patrick Morange
 

Cousinhub

XLDnaute Barbatruc
Re : Une base de données un peu lourde...?

Bonsoir,

pour nettoyer ton fichier, tu peux utiliser ce code de Laurent Longre :


Code:
Sub NettoieEtDerniereCellule()     ' Laurent Longre
  Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
  On Error Resume Next
  Calc = Application.Calculation
  With Application
    .Calculation = xlCalculationManual
    .StatusBar = "Nettoyage en cours..."
    .EnableCancelKey = xlErrorHandler
    .ScreenUpdating = False
  End With
  For Each Sht In Worksheets
    If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
      Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
      If Not DCell Is Nothing Then
        Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Delete
        Set DCell = Nothing
        Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
        If Not DCell Is Nothing Then _
 Sht.Range(DCell, Sht.[IV1]).EntireColumn.Delete
      End If
      Rien = Sht.UsedRange.Address
    End If
  Next Sht
  Application.StatusBar = False
  Application.Calculation = Calc
End Sub

Bon courage
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 864
Membres
103 979
dernier inscrit
imed