Message erreur: "Memoire insuffisante..."

Luminou

XLDnaute Junior
Edit: Bien le bonjour a tous chère excel downloader,

Voila j'ai ce message: Memoire insuffisante pour afficher en entier.

Il ne me semble pas avoir fait d'erreur dans mon programme, pourrier vous me dire d'ou cela peut bien venir en général?

Merci
 
Dernière édition:

Luminou

XLDnaute Junior
Re : Message erreur: "Memoire insuffisante..."

J'aimerait y attacher mon fichier mais il est trop gros 125k, meme quand je tire tout le code il est encore au dessus de la limite, mais voici le code

Code:
Option Explicit

Private Sub ComboBoxDN_DropButtonClick()
miseajourDN
End Sub

Private Sub ComboBoxDN_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode & Shift = "90" Or KeyCode & Shift = "130" Then
miseajourDN
End If
End Sub

Private Sub miseajourDN()
Dim DN As Single
Dim i As Byte
If Not IsNumeric(ComboBoxDN.Value) Then
MsgBox ("Diametre inconnu!")
ComboBoxDN.Value = 0
Exit Sub
End If
i = correspondanceDN()
ComboBoxIX.Value = Worksheets("Feuil2").Range("D" & i).Text
formatview (i)
miseajourtol (i)
ecrituretabinventor (i)
End Sub
Private Sub ComboBoxIX_DropButtonClick()
miseajourIX
End Sub
Private Sub ComboBoxIX_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
MaCombo "DN", "DN", KeyCode & Shift
If KeyCode & Shift = "90" Or KeyCode & Shift = "130" Then
miseajourIX
End If
End Sub
Private Sub miseajourIX()
Dim IX As Integer
Dim i As Byte
If Not IsNumeric(Replace(ComboBoxIX.Value, "IX", "")) Then
MsgBox ("Type de joint inconnu")
ComboBoxIX.Value = 0
surbrillance ("IX")
Else
IX = CInt(Replace(ComboBoxIX.Value, "IX", ""))
i = correspondanceIX(IX)
ComboBoxDN.Value = Worksheets("Feuil2").Range("C" & i).Text
formatview (i)
miseajourtol (i)
ecrituretabinventor (i)
End If
End Sub

Private Sub ToggleButtonDN_Click() 'bouton diametre de passage
    ComboBoxDN.Enabled = ToggleButtonDN
    ToggleButtonIX = Not ToggleButtonDN
    If ComboBoxDN.Enabled = True Then surbrillance ("DN")
    If ComboBoxIX.Enabled = True Then surbrillance ("IX")
End Sub
Private Sub ToggleButtonIX_Click()
    ComboBoxIX.Enabled = ToggleButtonIX
    ToggleButtonDN = Not ToggleButtonIX
    If ComboBoxIX.Enabled = True Then surbrillance ("IX")
    If ComboBoxDN.Enabled = True Then surbrillance ("DN")
End Sub
Function correspondanceDN() As Integer
    Dim table() As Variant, i As Integer, j As Integer, DN As Variant
       
    j = 0
    DN = Replace(Replace(ComboBoxDN.Value, " ", ""), "IN", "")
    If DN = "0.5" Or DN = "0,5" Then DN = "1/2": ComboBoxDN.Value = "1/2"
    If DN = "0.75" Or DN = "0,75" Then DN = "3/4": ComboBoxDN.Value = "3/4"
    If DN = "1.5" Or DN = "1,5" Then DN = "1 1/2": ComboBoxDN.Value = "1 1/2"
    If DN = "11/2" Then DN = "1 1/2": ComboBoxDN.Value = "1 1/2"
    table = Array("1/2", "3/4", "1", "1 1/2", "2", "2.5", "3", "4", "5", "6", "8", "10", "12", "14", "16", "18", "20", "22", "24", "26", "28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48")
    For i = LBound(table) To UBound(table)
        If DN = table(i) Then j = 14 + i: Exit For
    Next i
    If j = 0 Then
    MsgBox "Diametre inconnu"
    surbrillance ("DN")
    correspondanceDN = 100
    Exit Function
    End If
    correspondanceDN = j
    surbrillance ("DN")
End Function
Function correspondanceIX(IX As Variant) As Integer
    Dim table() As Variant, i As Integer, j As Integer
    j = 0
    table = Array(15, 20, 25, 40, 50, 65, 80, 100, 125, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200)
    For i = LBound(table) To UBound(table)
        If IX = table(i) Then j = 14 + i: Exit For
    Next i
    If j = 0 Then
    MsgBox "Type de joint inconnu"
    surbrillance ("IX")
    correspondanceIX = 100
    Exit Function
    End If
    correspondanceIX = j
    surbrillance ("IX")
End Function
Sub surbrillance(arg)
ActiveSheet.OLEObjects("ComboBox" & arg).Activate
ActiveSheet.OLEObjects("ComboBox" & arg).Object.SelStart = 0
ActiveSheet.OLEObjects("ComboBox" & arg).Object.SelLength = Len(ActiveSheet.OLEObjects("ComboBox" & arg).Object.Value)
End Sub
Sub MaCombo(Arg1, Arg2, Arg3)
Dim moncode As Variant

Select Case Arg3
    Case "90", "130": moncode = Arg1
    Case "91", "131": moncode = Arg2
    Case Else: Exit Sub
End Select
ActiveSheet.OLEObjects("ComboBox" & moncode).Activate
ActiveSheet.OLEObjects("ComboBox" & moncode).Object.SelStart = 0
ActiveSheet.OLEObjects("ComboBox" & moncode).Object.SelLength = Len(ActiveSheet.OLEObjects("ComboBox" & moncode).Object.Value)
End Sub
Private Sub formatview(i)

LabelHG4.Caption = Worksheets("Feuil2").Range("P" & i).Text
LabelHG3.Caption = Worksheets("Feuil2").Range("O" & i).Text
LabelHG2.Caption = Worksheets("Feuil2").Range("N" & i).Text
LabelDG1.Caption = "Ø" & Worksheets("Feuil2").Range("E" & i).Text
LabelDG8.Caption = "Ø" & Worksheets("Feuil2").Range("L" & i).Text
LabelDG5.Caption = "Ø" & Worksheets("Feuil2").Range("I" & i).Text
LabelDG6.Caption = "Ø" & Worksheets("Feuil2").Range("J" & i).Text
LabelHG1.Caption = Worksheets("Feuil2").Range("M" & i).Text
LabelDG2.Caption = "Ø" & Worksheets("Feuil2").Range("F" & i).Text
LabelDG3.Caption = "Ø" & Worksheets("Feuil2").Range("G" & i).Text
LabelDG4.Caption = "Ø" & Worksheets("Feuil2").Range("H" & i).Text
LabelHG5.Caption = Worksheets("Feuil2").Range("Q" & i).Text
LabelDG7.Caption = "Ø" & Worksheets("Feuil2").Range("K" & i).Text

End Sub
Private Sub miseajourtol(i As Variant)
Dim IX As Single
If i = 100 Then Exit Sub
IX = CSng(Replace(Worksheets("Feuil2").Range("D" & i), "IX", ""))
If IX <= 80 Then
    LabelTolDG1.Caption = "±0.2"
ElseIf IX <= 350 Then
    LabelTolDG1.Caption = "±0.3"
Else: LabelTolDG1.Caption = "±0.4"
End If

If IX <= 80 Then
    LabelTolDG5.Caption = "±0.1"
ElseIf IX <= 350 Then
    LabelTolDG5.Caption = "±0.2"
Else: LabelTolDG5.Caption = "±0.4"
End If

If IX <= 150 Then
    LabelTolDG6Max.Caption = "+0.1"
    LabelTolDG6Min.Caption = "-0"
Else:   LabelTolDG6Max.Caption = "+0.2"
        LabelTolDG6Min.Caption = "-0"
End If

If IX <= 150 Then
    LabelTolDG7Max.Caption = "+0.1"
    LabelTolDG7Min.Caption = "-0"
Else:   LabelTolDG7Max.Caption = "+0.2"
        LabelTolDG7Min.Caption = "-0"
End If

If IX <= 40 Then
    LabelTolHG3.Caption = "±0.05"
ElseIf IX <= 200 Then
    LabelTolHG3.Caption = "±0.1"
ElseIf IX <= 400 Then
    LabelTolHG3.Caption = "±0.2"
ElseIf IX <= 600 Then
    LabelTolHG3.Caption = "±0.3"
ElseIf IX <= 800 Then
    LabelTolHG3.Caption = "±0.4"
ElseIf IX <= 1000 Then
    LabelTolHG3.Caption = "±0.5"
Else: LabelTolHG3.Caption = "±0.6"
End If

If IX <= 150 Then
    LabelTolHG5Max.Caption = "+0"
    LabelTolHG5Min.Caption = "-0.1"
ElseIf IX <= 350 Then
    LabelTolHG5Max.Caption = "+0"
    LabelTolHG5Min.Caption = "-0.2"
ElseIf IX <= 550 Then
    LabelTolHG5Max.Caption = "+0"
    LabelTolHG5Min.Caption = "-0.3"
ElseIf IX <= 700 Then
    LabelTolHG5Max.Caption = "+0"
    LabelTolHG5Min.Caption = "-0.4"
ElseIf IX <= 900 Then
    LabelTolHG5Max.Caption = "+0"
    LabelTolHG5Min.Caption = "-0.5"
ElseIf IX <= 1100 Then
    LabelTolHG5Max.Caption = "+0"
    LabelTolHG5Min.Caption = "-0.6"
Else:   LabelTolHG5Max.Caption = "+0"
        LabelTolHG5Min.Caption = "-0.7"
End If

End Sub

Private Sub ecrituretabinventor(i)
Dim a As Integer
If i = 100 Then Exit Sub
For a = 1 To 19
    Worksheets("Feuil1").Range("T" & a) = Worksheets("Feuil2").Cells(13, a)
    Worksheets("Feuil1").Range("U" & a) = Worksheets("Feuil2").Cells(i, a)
Next a

Worksheets("Feuil1").Range("U" & 20) = LabelTolDG1.Caption
Worksheets("Feuil1").Range("U" & 21) = LabelTolDG5.Caption
Worksheets("Feuil1").Range("U" & 22) = Replace(LabelDG6.Caption, "Ø", "")
Worksheets("Feuil1").Range("U" & 23) = LabelTolDG6Min.Caption
Worksheets("Feuil1").Range("U" & 24) = LabelTolDG6Max.Caption
Worksheets("Feuil1").Range("U" & 26) = Replace(Worksheets("Feuil1").Range("U" & 24), "+", "") / 2
Worksheets("Feuil1").Range("U" & 25) = CDbl(Replace(Replace(LabelDG6.Caption, "Ø", ""), ".", ",")) + _
                                        CDbl(Worksheets("Feuil1").Range("U" & 26))
Worksheets("Feuil1").Range("U" & 27) = Replace(LabelDG7.Caption, "Ø", "")
Worksheets("Feuil1").Range("U" & 28) = LabelTolDG7Min.Caption
Worksheets("Feuil1").Range("U" & 29) = LabelTolDG7Max.Caption
Worksheets("Feuil1").Range("U" & 31) = CDbl(Replace(LabelTolDG7Max.Caption, "+", "")) / 2
Worksheets("Feuil1").Range("U" & 30) = CDbl(Replace(Replace(LabelDG7.Caption, "Ø", ""), ".", ",")) + CDbl(Worksheets("Feuil1").Range("U" & 31))
Worksheets("Feuil1").Range("U" & 32) = LabelTolHG3.Caption
Worksheets("Feuil1").Range("U" & 33) = LabelHG5.Caption
Worksheets("Feuil1").Range("U" & 34) = LabelTolHG5Min.Caption
Worksheets("Feuil1").Range("U" & 35) = LabelTolHG5Max.Caption
Worksheets("Feuil1").Range("U" & 37) = -CDbl(Replace(LabelTolHG5Min.Caption, ".", ",") / 2)
Worksheets("Feuil1").Range("U" & 33) = CDbl(LabelHG5.Caption) + CDbl(Worksheets("Feuil1").Range("U" & 37))
Worksheets("Feuil1").Range("U" & 36) = CDbl(Worksheets("Feuil1").Range("U" & 33)) + CDbl(Worksheets("Feuil1").Range("U" & 37))

End Sub
 

Luminou

XLDnaute Junior
Re : Message erreur: "Memoire insuffisante..."

Heu je ne vois pas pourquoi on s'acharne sur moi comme sa, j'ai tout de suite édité mon post, il est vrai que j'ai poser ma question un peu vite, et je m'en excuse.
Donc j'avait editer mon post ou je disait bonjours, j'ai bien lu la question donc porcinet, de plus j'ai dit "en général" dans la question.

Je sais bien que lire un code comme le mien demande de la patience, et c'est pour ca que je n'ait pas mis mon code.

Je voulait juste un conseil, je suppose que se message est liée a un type d'erreur bien connu en "général".

Voila si vous continuer a vous acharné sur moi a cause d'un malheureuse oubli, et bien tempi. Je ne me sens pas fautif, j'irais voir ailleur...
 

porcinet82

XLDnaute Barbatruc
Re : Message erreur: "Memoire insuffisante..."

re,

Sorry, je n'avais pas vue que tu avais édité ton post...

Par contre, il te met l'erreur sur quelle procédure, parce que comme on ne peut pas tester, l'erreur ne saute pas aux yeux.

Sinon, une ou deux petites remarques si je peux me permettre. Dans tes procédures formatview et ecrituretabinventor, tu peux un With, ca ferai un truc du genre :
Code:
Private Sub formatview(i)
With Sheets("Feuil2")
    LabelHG4.Caption = .Range("P" & i).Text
    LabelHG3.Caption = .Range("O" & i).Text
   [COLOR=green] '...[/COLOR]
  End With
End Sub

Et pour ce qui est de la procédure miseajourtol, je ne la comprend pas tres bien, tu as plusieurs fois If IX <= 80 Then alors que les labels ne prennent pas toujours la même chose, tu as 2 fois If IX <= 150 Then, et je ne le comprend pas en règles générales...

@+
 

Luminou

XLDnaute Junior
Re : Message erreur: "Memoire insuffisante..."

Salut,

C'est pas grave pour l'édit.

Pour l'erreur c'est ca le problem mon prog marche manifiquement bien quand je le fait allé en mode pas à pas, il tourne en boucle continue. C'est normal ca quand meme non? (je veux dire que je peux apuiller sur f8 indfiniment sa fait le tour du soft en acomplisant sa tache au passage)

Voila j'ai réussi a mettre juste le xls sans le code visual en le compressant avec zip.

Merci pour le conseil avec with c'est vrai que je ne connait pas tout se genre de petit truque simpa qui evite les copier coller et qui optimise certainement un prog.

Pour le mise a jour tol, en faite c'est un prog de dessin automatique a partir de donner dans une norme iso. Les valeur des dimmention de piece sont donnée dans un tableau, les valeur des tolérance de ces dimention sont donné par des règles. C'est ces règle que tu ne comprend pas. C'est normal personne ne les comprend ^^ Mais elle dépende directement du type de piece concernée. Soit donné par la varialbe IX

Merci pour ton aide.

Lumi
 

Pièces jointes

  • Luminou.zip
    39.5 KB · Affichages: 52
  • Luminou.zip
    39.5 KB · Affichages: 66
  • Luminou.zip
    39.5 KB · Affichages: 61

Luminou

XLDnaute Junior
Re : Message erreur: "Memoire insuffisante..."

je panse qu'il n'y a pas d'erreur direct car en ne fesait fonctionner qu'avec certaines fonction, cela ne pose pas de probleme. C'est le faite de mettre tout le monde en meme temp qui pose prob. Je me demande si n'est pas du a un trop grand nombre d'acces aux cellule. Dans quel cas je serait assez decu du logiciel....
 

jeanpierre

Nous a quitté
Repose en paix
Re : Message erreur: "Memoire insuffisante..."

Bonjour Luminou, Romain, Jean-Pierre Excalibur,

Comme ton problème m'arrive souvent, j'ai suivi ce fil mais maintenant tu parles d'accés par plusieurs personnes si j'ai bien compris...

Il n'y a pas à être déçu, Excel n'est pas un logiciel MultiUtilisateurs, même les meilleurs programmes ne savent pas faire.... Il sait partager, sous certaines conditions, mais sans plus.

Il faudrait une explication plus fine de ton souci.

A te lire.

Jean-Pierre
 

porcinet82

XLDnaute Barbatruc
Re : Message erreur: "Memoire insuffisante..."

re, Salut JeanPierre,

En fait, il ne s'agit pas d'acces par plusieurs personnes, mais bel et bien d'un problème mémoire. D'ailleurs, des qu'on ouvre le fichier, le message d'erreur suivant apparait : Mémoire insuffisante pour afficher en entier.

Le message n'est pas tres parlant, mais il me semble que ce prolème a deja ete abordé ici, cependant, je n'ai pas eu le temps de faire des recherches...

Je ne comprend pas trop ce que peux signifier ce problème, c'est étrange... Si quelqu'un à une solution pour venir en aide à Luminou et éclairer ma lanterne, je suis preneur.

@+
 

Luminou

XLDnaute Junior
Re : Message erreur: "Memoire insuffisante..."

Salut Jean Pierre, non non , quand je dit "tout le monde", je veux dire: mes trois sub principaux , séparément il ne pose pas de prob mais ensemble on dirait qu'ils pompe trop de ressource c'est pourtant bizard car j'ai trois giga de ram et la on en est loin loin, meme quand je regarde dans le gestionnaire de tache, j'ai de la place a revendre.

Et quand je parle de "trop grand nombre d'acces", je veux dire des actions comme: .Range("P" & i).Text

Je ne sais pas quel genre de ressource ssyteme cela peut utiliser mais je panssait que ct dérisoire face a certain prog élaborés....

Merci pour votre aide

Lumi
 

jeanpierre

Nous a quitté
Repose en paix
Re : Message erreur: "Memoire insuffisante..."

Bonsoir à tous,

Pour répondre à Romain, j'ai une mémoire physique Pc assez defaillante et pourtant j'ai pu ouvrir le fichier (un peu longuet mais pas trop), mais parle-t-on de la même chose ?

A l'écoute et toujours dans le questionnement.

Jean-Pierre
 

Statistiques des forums

Discussions
312 555
Messages
2 089 562
Membres
104 214
dernier inscrit
palp