Impossible de modifier une macro : mémoire insuffisante
Bonjour à tous,
Je ne suis pas une pro des macros mais je me lance !
Il faut un début à tout....
J'essaie de modifier une macro mais impossible, il y a semble t-il un problème de mémoire que je ne sais pas résoudre.
Mon outil est une petite base de données qui permet de créer un nouveau dossier dans un onglet, le consulter et le modifier dans un autre, un autre onglet qui enregistre les données de la base.
Sub NOUVEAU()
'
' NOUVEAU Macro
'
Sheets("Base de données").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Sheets("Nouveau").Select
Range("A2:BI2").Select
Selection.Copy
Sheets("Base de données").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Columns("A:BI").Select
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("D2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
Sheets("Nouveau").Select
Range("C6:C21, F16, I5:I6, I8:I13, I16, F6, F23").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("C9").Select
Selection.ClearContents
Range("C5").Select
End Sub
_______________________________________________________________________
Sub Suppression_enregistrement()
If [Param_no_ligne] = 0 Then Exit Sub
If MsgBox("Confirmation de la suppression de l'enregistrement", vbYesNo, "Suppression") = vbYes Then
Sheets("Base de données").Rows([Param_no_ligne] + 1).Delete Shift:=xlUp
If [Nb_enregistrements_BD] < [Param_no_ligne] Then [Param_no_ligne] = [Param_no_ligne] - 1
End If
End Sub
___________________________________________________________________________
Sub Aller_a_enregistrement_suivant()
If [Param_no_ligne] < [Nb_enregistrements_BD] Then
[Param_no_ligne] = [Param_no_ligne] + 1
End If
End Sub
Sub Aller_a_enregistrement_precedent()
If [Param_no_ligne] > 1 Then
[Param_no_ligne] = [Param_no_ligne] - 1
End If
End Sub
___________________________________________________________
Sub Modification()
'
' Modification Macro
' '
Range("A2:AW2").Select
Selection.Copy
Sheets("Base de données").Select
Range("A" & [Param_no_ligne] + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Consultation bis").Select
Range("D7:D16, D18, D20, D22, H5, H17:H21, L6:L7, L9:L14, L17:L20").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("B5").Select
End Sub
__________________________________________________________________
Sub Aller_a_nouveau()
'
' Aller_a_nouveau Macro
''
Sheets("Nouveau").Select
End Sub
________________________________________________________________________
Sub Aller_a_consultation()
'
' Aller_a_consultation Macro
' '
Sheets("Consultation bis").Select
Range("D5").Select
End Sub
___________________________________________________________________________
Sub Aller_a_menu()
'
' Aller_a_menu Macro
'
Sheets("MENU").Select
End Sub
Merci d'avance pour votre aide !!
Carole
-- 17 Nov 2010, 10:35 --
Pour être plus précise, je voudrais modifier cette ligne dans la 1ere macro :
Range("C6:C21, F16, I5:I6, I8:I13, I16, F6, F23").Select
Je voudrais y ajouter la cellule B25
Une fois fait, lorsque je clique sur la disquette, ma modification s'efface.
Si j'essaie d'insérer une ligne sous ce code j'ai la fenêtre erreur suivante qui s'affiche : MEMOIRE INSUFFISANTE
Bonjour,
En cas de message Memoire Insuffisante, il faut d'abord fermer Excel puis réouvir le fichier en question. Cela solutionne bien souvent le problème.
Pour le code, essaie ceci :
Sub NOUVEAU()
' NOUVEAU Macro
With Sheets("Base de données")
.Select
.Rows("2:2").Insert Shift:=xlDown
Sheets("Nouveau").Range("A2:BI2").Copy
With .Range("A2")
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
.Columns("A:BI").Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("D2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End With
Sheets("Nouveau").Select
Range("C6:C21, F16, I5:I6, I8:I13, I16, F6, F23, B25").ClearContents
Range("C9").ClearContents
End Sub
Amicalement
.... impossible de modififer le code, dès que je veux supprimer qqchose, le message "mémoire insuffisante" réapparait...
HELP !
Re,
Merci de mettre le fichier en ligne afin que je puisse tester.
Amicalement
OK je le mets demain dans la journée
bonne soirée
-- 18 Nov 2010, 14:04 --