Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
478
Réponses
38
Affichages
420
Réponses
10
Affichages
285
Réponses
5
Affichages
341
Réponses
5
Affichages
566
Réponses
12
Affichages
692
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…