Microsoft 365 Vba Index Equiv

  • Initiateur de la discussion Initiateur de la discussion eric72
  • 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 !

eric72

XLDnaute Accro
Bonjour à tous,
j'ai un fichier avec des archives qui comprennent 3600 colonnes et 577 lignes, j'ai un planning dans lequel lorsque je selectionne une année et une semaine (date du 1er jour de la semaine le lundi), j'aimerais récupérer les infos indiquées dans les archives, j'ai un code qui fonctionne dans l'évènement de la feuille mais c'est long(et encore je l'ai fait que pour une équipe et il y en a 8, y-a-t-il un moyen d'accélerer ce code?
compte tenu du poids du fichier j'ai du réduire le nombre de lignes et colonnes.
Merci beaucoup pour votre aide
Eric
 

Pièces jointes

Solution
Re bonjour,
En déplaçant les lignes ici peut être. Attention, jy ai rajouté une ligne
Application.EnableEvents = False au DEBUT
Application.EnableEvents = True à la FIN

Pour le début
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("n4:t4")) Is Nothing Then Sheets("Planning").Range("al4:aq4").ClearContents
   If Not Intersect(Target, Range("al4:aq4")) Is Nothing Then
        If Sheets("Planning").Range("n4") <> "" And Sheets("Planning").Range("al4") <> "" Then
            Application.ScreenUpdating = False
            Application.Calculation = xlCalculationManual
            Application.EnableEvents = False

et pour la fin
VB:
    .[bk57].Value = Sheets("Archives").Cells(69, colcible5)...
Re bonjour,
En déplaçant les lignes ici peut être. Attention, jy ai rajouté une ligne
Application.EnableEvents = False au DEBUT
Application.EnableEvents = True à la FIN

Pour le début
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("n4:t4")) Is Nothing Then Sheets("Planning").Range("al4:aq4").ClearContents
   If Not Intersect(Target, Range("al4:aq4")) Is Nothing Then
        If Sheets("Planning").Range("n4") <> "" And Sheets("Planning").Range("al4") <> "" Then
            Application.ScreenUpdating = False
            Application.Calculation = xlCalculationManual
            Application.EnableEvents = False

et pour la fin
VB:
    .[bk57].Value = Sheets("Archives").Cells(69, colcible5): .[bl57].Value = Sheets("Archives").Cells(70, colcible5): .[bm57].Value = Sheets("Archives").Cells(71, colcible5): _
    .[bm62].Value = Sheets("Archives").Cells(72, colcible5): .[bm63].Value = Sheets("Archives").Cells(73, colcible5):
    
        Application.Calculation = xlCalculationAutomatic
        Application.EnableEvents = True
        Application.ScreenUpdating = False

    
    End With
Chez moi, c'est du coup "presque instantané"
@+ Lolote83
 
- 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

Discussions similaires

Réponses
66
Affichages
477
Réponses
38
Affichages
409
Réponses
10
Affichages
283
Réponses
5
Affichages
341
Réponses
5
Affichages
564
Réponses
12
Affichages
692
Retour