Bonjour à tous
J'avais réalisé avec l'aide de ce forum, une application sous Excell 2000 pour gérer une bibliothèque cantonale (avec des bénévoles)
Mais le nombre de livres ayant augmenté de façon considérable, ce qui ralentit beaucoup le fonctionnement (à chaque changement d'action : enregistrer un prêt , ou un retour ou consulter les données etc..))il y a une sauvegarde automatique qui devient trop longue à réaliser
J'ai donc eu l'idée de séparer les base de données (j'avais les données sur plusieurs feuilles dans le même classeur )
J'ai donc gardé sur mon classeur maitre toutes les macros et les UF qui composent l'application
et j'ai créé d'autres classeurs :
GdA.xls
GdP.xls
Archives.xls
Ces classeurs s'ouvrent en même temps que le classeur maitre et je suis arrivé à faire fonctionner la plupart des Macros et des UF
J'ai seulement 2 soucis de copier coller
Dans mon UF qui gère les rendus, j'arrive bien à effacer la ligne concernant le livre rendu, mais je n'arrive pas à le copier dans les archives (9a marchait quand c'était sur les feuilles d'un même classeur
Voici le code qui me pose soucis:
Private Sub CmB4_Click() 'enregistrer un rendu
Dim L As Integer
Dim I As Integer
Dim c As Range
Dim lig As Integer
Dim Dt As Range
'Windows("Archives.xls").Activate
' Set Dt = Sheets("Archives").Range("b65536").End(xlUp).Offset(1, 0)
If ListBox1.ListIndex = -1 Then Exit Sub
Windows("GdP.xls").Activate
lig = 8
For Each c In Sheets("GdP").Range("H9:H" & Range("H65536").End(xlUp).Row)
lig = lig + 1
If c.Value = ListBox1.List(ListBox1.ListIndex, 2) Then Exit For
Next
On Error Resume Next
'Windows("Archives.xls").Activate
Set Dt = Windows("Archives.xls").Sheets("Archives").Range("b65536").End(xlUp).Offset(1, 0)
Windows("GdP").Activate
Range(Cells(lig, 6), Cells(lig, 12)).Copy Destination:=Dt
Sheets("GdP").Rows(lig).Delete ' pour supprimer la ligne
Windows("Archives.xls").Activate
With Worksheets("Archives")
Set Dt = Sheets("Archives").Range("b65536").End(xlUp).Offset(1, 0)
Sheets("Archives").Range("b65536").End(xlUp).Offset(0, 5) = Date
Sheets("Archives").Columns("F:G").NumberFormat = "d/m/yy"
End With
UserForm3.ListBox1.List(ListBox1.ListIndex, 1) = ""
ListBox1.List(ListBox1.ListIndex, 2) = ""
ListBox1.List(ListBox1.ListIndex, 3) = ""
ListBox1.List(ListBox1.ListIndex, 4) = ""
End Sub
"GdP" est le classeur ou j’efface la ligne (ça marche)
"Archives" et le classeur ou je veux copier la ligne (ça ne marche pas)
J'ai un problème similaire pour copier une liste sélectionné dans l'UF vers une feuille "tampon" située sur le classeur maitre
Merci à ceux qui pourraient m'aider, ça permettrait de gagner beaucoup de temps aux bénévoles
Merci
P.S.: j'ai bien parcouru les discussion qui traitent d'un sujet similaire, mais je n'ai pas trouvé la bonne !
J'avais réalisé avec l'aide de ce forum, une application sous Excell 2000 pour gérer une bibliothèque cantonale (avec des bénévoles)
Mais le nombre de livres ayant augmenté de façon considérable, ce qui ralentit beaucoup le fonctionnement (à chaque changement d'action : enregistrer un prêt , ou un retour ou consulter les données etc..))il y a une sauvegarde automatique qui devient trop longue à réaliser
J'ai donc eu l'idée de séparer les base de données (j'avais les données sur plusieurs feuilles dans le même classeur )
J'ai donc gardé sur mon classeur maitre toutes les macros et les UF qui composent l'application
et j'ai créé d'autres classeurs :
GdA.xls
GdP.xls
Archives.xls
Ces classeurs s'ouvrent en même temps que le classeur maitre et je suis arrivé à faire fonctionner la plupart des Macros et des UF
J'ai seulement 2 soucis de copier coller
Dans mon UF qui gère les rendus, j'arrive bien à effacer la ligne concernant le livre rendu, mais je n'arrive pas à le copier dans les archives (9a marchait quand c'était sur les feuilles d'un même classeur
Voici le code qui me pose soucis:
Private Sub CmB4_Click() 'enregistrer un rendu
Dim L As Integer
Dim I As Integer
Dim c As Range
Dim lig As Integer
Dim Dt As Range
'Windows("Archives.xls").Activate
' Set Dt = Sheets("Archives").Range("b65536").End(xlUp).Offset(1, 0)
If ListBox1.ListIndex = -1 Then Exit Sub
Windows("GdP.xls").Activate
lig = 8
For Each c In Sheets("GdP").Range("H9:H" & Range("H65536").End(xlUp).Row)
lig = lig + 1
If c.Value = ListBox1.List(ListBox1.ListIndex, 2) Then Exit For
Next
On Error Resume Next
'Windows("Archives.xls").Activate
Set Dt = Windows("Archives.xls").Sheets("Archives").Range("b65536").End(xlUp).Offset(1, 0)
Windows("GdP").Activate
Range(Cells(lig, 6), Cells(lig, 12)).Copy Destination:=Dt
Sheets("GdP").Rows(lig).Delete ' pour supprimer la ligne
Windows("Archives.xls").Activate
With Worksheets("Archives")
Set Dt = Sheets("Archives").Range("b65536").End(xlUp).Offset(1, 0)
Sheets("Archives").Range("b65536").End(xlUp).Offset(0, 5) = Date
Sheets("Archives").Columns("F:G").NumberFormat = "d/m/yy"
End With
UserForm3.ListBox1.List(ListBox1.ListIndex, 1) = ""
ListBox1.List(ListBox1.ListIndex, 2) = ""
ListBox1.List(ListBox1.ListIndex, 3) = ""
ListBox1.List(ListBox1.ListIndex, 4) = ""
End Sub
"GdP" est le classeur ou j’efface la ligne (ça marche)
"Archives" et le classeur ou je veux copier la ligne (ça ne marche pas)
J'ai un problème similaire pour copier une liste sélectionné dans l'UF vers une feuille "tampon" située sur le classeur maitre
Merci à ceux qui pourraient m'aider, ça permettrait de gagner beaucoup de temps aux bénévoles
Merci
P.S.: j'ai bien parcouru les discussion qui traitent d'un sujet similaire, mais je n'ai pas trouvé la bonne !