Les Macros se trainent ! !

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

WDAndCo

XLDnaute Impliqué
Bonsoir le Forum

J'ai un classeur dans le quel il y a une macro qui va voir dans un dossier et reviens avec les noms de tous classeur de ce dossier.
Puis une autre me découpe ses noms pour remplir une base, avec la quelle et un système de filtre (merci BrunoM45) je choisi le bon classeur a ouvrir. Le problème est que la macro qui remplis la base prends un certain temps ! (Il y a pour l’instant que 500 classeurs je pense qu'il en auras 6 fois plus lorsque cela sera opérationnel)

1) Est il possible de la rendre plus rapide ?
2) Je cherche un moyen d'éviter le lancement de cette macro si le nombre de fichier dans le dossier est égal au nombre de nom (MAJ superflue)

Je joint un fichier (les macros sont neutralisées pour éviter de vider la base)

D'avance merci.
 

Pièces jointes

Dernière édition:
Re : Les Macros se trainent ! !

Pas de message sur clic cellule vide, normal: j'ai considéré dans ce cas qu'on voulait sélectionner la cellule pour une mystérieuse raison étrangère au dispositif. Si vous voulez que ce soit signalé quand même :
If Target.Value = "" Then Msgbox "Cellule vide ?", vbExclamation, "Atteindre une fiche": Exit Sub
Je ne comprend d'où pourrait bien venir le second problème.
C'est bien l'erreur due au fait que le classeur n'existe pas parmi ceux déjà ouverts, mais pourquoi un arrêt alors qu"il y a On Error Resume Next devant ???
Je soupçonnerais presque dans VBA Outils, Options, Général, Arrêt sur toutes les erreurs coché à tort... sinon pourriez vous joindre un tout petit classeur qui reproduit juste ce problème ?
À +
 
Re : Les Macros se trainent ! !

Bonsoir le Forum

J'ai découvert avec vous les Macros qui se lance presque toutes seules !
Aussi j'aimerais en abusé :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim NomFic As String

If Target.Column = 19 And Target.Row = 1 Then Call Macro1 : Exit Sub 'Celle la doit se lancer lors d'un clic en S1
If Target.Column < 17 And Target.Row = 1 Then Call Macro2 : Exit Sub 'Celle la doit se lancer lors d'un clic entre A1 et Q1
If Target.Column < 17 And Target.Row > 1 Then Call Macro3 : Exit Sub 'Celle la doit se lancer lors d'un clic entre A2 et Qla derniere ligne

If Target.Column <> 19 Or Target.Row = 1 Or Target.Count <> 1 Then Exit Sub
If Target.Value = "" Then MsgBox "Mais cette Cellule est vide !", vbExclamation, "Atteindre une fiche": Exit Sub
NomFic = Target.Offset(, -1).Value
On Error Resume Next
Workbooks(NomFic).Activate ' car il peut déjà avoir été ouvert
If Err Then Err.Clear: Workbooks.Open ThisWorkbook.Path & "\Fiche MP\" & NomFic
If Err Then MsgBox "Ouverture impossible de """ & NomFic & """ dans" & vbLf _
   & ThisWorkbook.Path & "\Fiche MP", vbCritical, "Applel " & Target.Value
End Sub

If Target.Column = 19 And Target.Row = 1 Then Call Macro1 : Exit Sub 'Celle la doit se lancer lors d'un clic en S1
If Target.Column < 17 And Target.Row = 1 Then Call Macro2 : Exit Sub 'Celle la doit se lancer lors d'un clic entre A1 et Q1
If Target.Column < 17 And Target.Row > 1 Then Call Macro3 : Exit Sub 'Celle la doit se lancer lors d'un clic entre A2 et Qla derniere ligne


Cela est il conforme ou académique ?

D'avance merci
Dominique
 
- 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
8
Affichages
317
T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
795
Themax
T
Réponses
5
Affichages
653
Retour