Code inachevé et très lent !!

  • Initiateur de la discussion Initiateur de la discussion BENNASR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

BENNASR

Guest
bonjour
Je suis débutant en VBA et à l'aide de la net j'ai arrivé à développé ptite application de gestion de ma trésorerie
maintenant chui bloqué vu que ce code qui me permet d'éditer un extrait de chaque compte souffre de :
* très lent
* Copié les données depuis la cellule "A14" malgré que j'ai mis "A13" de la feuille "EDITION"
* Trie à l'inverse les données copiées depuis la feuille "mouvement"
merci d'avance pour un cou de main car chui bloqué
Code:
Sub GRAND_LIVRE()
 Dim plage As Range, cel As Range
    Application.ScreenUpdating = False
    valcherch = Sheets("EDITION").Range("B5")
    With Worksheets("Mouvement")
        derlig = .Range("A" & Rows.Count).End(xlUp).Row
        Set plage = .Range("A11:A" & derlig)
    End With
    For Each cel In plage
        If cel = valcherch Then
        cel(, 2).copy Worksheets("EDITION").Range("A13")
        cel(, 5).copy Worksheets("EDITION").Range("B13")
        cel(, 7).copy Worksheets("EDITION").Range("C13")
        cel(, 8).copy Worksheets("EDITION").Range("D13")
        Worksheets("EDITION").Range("A13").Select
        Selection.Insert Shift:=xlDown
        Worksheets("EDITION").Range("B13").Select
        Selection.Insert Shift:=xlDown
        Worksheets("EDITION").Range("c13").Select
        Selection.Insert Shift:=xlDown
        Worksheets("EDITION").Range("D13").Select
        Selection.Insert Shift:=xlDown
        End If
    Next cel
    Application.ScreenUpdating = True
End Sub
ci joint mon fichier simplifié avec des données fictives en souhaitant recevoir de l'aide
 

Pièces jointes

Re : Code inachevé et très lent !!

Bonjour,

pas ouvert ton fichier, mais déjà en supprimant les "select" tu devrais gagner en rapidité...

Code:
Option Explicit
Sub GRAND_LIVRE()
  Dim plage As Range, cel As Range
     Application.ScreenUpdating = False
     valcherch = Sheets("EDITION").Range("B5")
     With Worksheets("Mouvement")
         derlig = .Range("A" & Rows.Count).End(xlUp).Row
         Set plage = .Range("A11:A" & derlig)
     End With
     For Each cel In plage
         If cel = valcherch Then
            cel(, 2).Copy Worksheets("EDITION").Range("A13")
            cel(, 5).Copy Worksheets("EDITION").Range("B13")
            cel(, 7).Copy Worksheets("EDITION").Range("C13")
            cel(, 8).Copy Worksheets("EDITION").Range("D13")
            Worksheets("EDITION").Range("A13").Insert Shift:=xlDown
            Worksheets("EDITION").Range("B13").Insert Shift:=xlDown
            Worksheets("EDITION").Range("c13").Insert Shift:=xlDown
            Worksheets("EDITION").Range("D13").Insert Shift:=xlDown
         End If
     Next cel
     Application.ScreenUpdating = True
 End Sub

bonne journée
@+
 
Re : Code inachevé et très lent !!

Merci pierrot93
super comme début mais pourquoi il commence de A14 et non pas A13 de la feuille "EDITION" comme indiqué dans le code ... aussi l'histoire du trie inverse à la feuille source "Mouvement"
Merci d'avance
 
Re : Code inachevé et très lent !!

Re,

regarde ceci :
Code:
Option Explicit
Sub GRAND_LIVRE()
Dim plage As Range, cel As Range
Dim valcherch As String, derlig As Long
    Application.ScreenUpdating = False
    valcherch = Sheets("EDITION").Range("B5")
    With Worksheets("Mouvement")
        derlig = .Range("A" & Rows.Count).End(xlUp).Row
        Set plage = .Range("A11:A" & derlig)
    End With
    For Each cel In plage
        If cel = valcherch Then
            cel(, 2).copy Worksheets("EDITION").Range("A13")
            cel(, 5).copy Worksheets("EDITION").Range("B13")
            cel(, 7).copy Worksheets("EDITION").Range("C13")
            cel(, 8).copy Worksheets("EDITION").Range("D13")
            Worksheets("EDITION").Rows(13).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
        End If
    Next cel
    Application.ScreenUpdating = True
End Sub

mais tu insère une ligne après enregistrement, ce qui te laisse penser que tu commence à la ligne 14 mais en fait tu commence bien à la 13... execute le code pas à pas, touche de fonction F8 dans l'éditeur vba...
 
Re : Code inachevé et très lent !!

Merci pour l'intérêt que t'as accordé à ma requête .. le code commence encore de la ligne 14 et encore les données en ordre inverse... bonne appétit ami .. je vais casser encore la tête et je vous informe des résultat
encore merci
 
Re : Code inachevé et très lent !!

Re,

Essaye ceci, attention la valeur "DATE" de l'onglet "EDITION" doit être positionnée en A12 et la cellule défusionnée... pas top en vba les cellules fusionnées ... Et un format date doit êgalement être appliqué à la colonne A puisque nous renvoyons maintenant que les valeurs...

Code:
Option Explicit
Sub GRAND_LIVRE()
Dim plage As Range, cel As Range
Dim valcherch As String, derlig As Long
    Application.ScreenUpdating = False
    valcherch = Sheets("EDITION").Range("B5")
    With Worksheets("Mouvement")
        derlig = .Range("A" & Rows.Count).End(xlUp).Row
        Set plage = .Range("A11:A" & derlig)
    End With
    For Each cel In plage
        If cel = valcherch Then
            Worksheets("EDITION").Cells(Rows.Count, 1).End(xlUp)(2) = cel(, 2)
            Worksheets("EDITION").Cells(Rows.Count, 1).End(xlUp)(1, 2) = cel(, 5)
            Worksheets("EDITION").Cells(Rows.Count, 1).End(xlUp)(1, 3) = cel(, 7)
            Worksheets("EDITION").Cells(Rows.Count, 1).End(xlUp)(1, 4) = cel(, 8)
        End If
    Next cel
    Application.ScreenUpdating = True
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
964
Réponses
13
Affichages
2 K
I
  • Question Question
Réponses
1
Affichages
3 K
N
Réponses
1
Affichages
2 K
Nonomix
N
Réponses
1
Affichages
986
T
Réponses
1
Affichages
2 K
D
Réponses
4
Affichages
1 K
Donsimend
D
L
Réponses
1
Affichages
968
lilidxb
L
A
Réponses
4
Affichages
1 K
alexanbat
A
Retour