Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1169 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro qui s'exécute sur Personal.xlsb

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro qui s'exécute sur Personal.xlsb

n°2413461
scaryfan
Apple Inside
Posté le 29-03-2022 à 12:10:45  profilanswer
 
Voir ce message dans le sujet non filtré
 

MaybeEijOrNot a écrit :

Rien à voir, le .activate va passer le classeur en "actif" donc oui la macro va s’exécuter dessus mais ce n'est pas le problème. Le problème c'est de sélectionner lequel est à activer. Ici tu actives le premier sans savoir lequel sera le premier. T'assurer d’exécuter la macro dans le bon classeur c'est une dizaine de lignes assez simples au max. Pour vérifier une "extension" tu peux split le nom avec le point et garder la dernière occurrence. Pour vérifier si un nom revient à chaque fois tu peux utiliser InStr, quand tu sais que tu as des longueurs fixes tu peux utiliser les fonctions Left, Right et Mid complétée de Len (longueur totale de la chaîne).
 
De manière générale, le .activate est à éviter, tu n'en as pas besoin, suffit d'utiliser le With. D'ailleurs je corrige mon exemple (pas besoin de repréciser Wbk à l'intérieur du With, c'est tout son intérêt) :

Code :
  1. For Each Wbk In Workbooks
  2.         cName = Wbk.Name
  3.         cName = Left(cName, Len(cName) - 1)
  4.         If cName = "Classeur" Then
  5.             Exit For
  6.         End If
  7.     Next
  8.     With Wbk
  9.         MsgBox (.Name)
  10.     End With



 
OK !
Donc dans mon cas, le code que je vais mettre en début de macro est le suivant :
 

Code :
  1. For Each Wbk In Workbooks
  2.         cName = Wbk.Name
  3.         cName = Left(cName, Len(cName) - 1)
  4.         If cName = "Trucmachin" Then
  5.             Exit For
  6.         End If
  7. Next
  8. With Wbk
  9.         Workbooks(.Name).Activate
  10. End With


 
Désolé, j'ai remis un "Activate"...  :D  


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
mood
Publicité
Posté le 29-03-2022 à 12:10:45  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro qui s'exécute sur Personal.xlsb

 

Sujets relatifs
macro word pour intervertir les paragraphes deux par deuxmacro de publipostage excel possible?
Macro de publipostage en multiple fichiers pdf - Message d'erreurAppel PowerShell dans une macro
Perte des données copiées lors du lancement d'une macro VBA/Excelmacro java sous libre office
Macro pour enregistrer en xlsm sur bureau avec date dans le nomMacro pour copier un tableau avec mot cle de word vers excel et dispat
Macro copie vers un autre fichier[LibreOffice][Tableur] Macro pour actualiser des liens externes html
Plus de sujets relatifs à : Macro qui s'exécute sur Personal.xlsb


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR