Vérification du contenu à l'ouverture de fichier EXCEL
Fanfan
-
28 janv. 2022 à 08:34
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 2022
-
29 janv. 2022 à 01:55
Bonjour,
Je cherche à déclencher un code à l'ouverture d'un fichier EXCEL afin de vérifier son contenu et exécuter un code si les conditions de vérifications sont OK ( comme par exemple enregistrer directement le fichier à un certain endroit)
Attention, le fichier que je teste ne peut pas contenir de code, il est généré par une appli pro et ouvert via un lien internet. This WorkBook_Open() ne peut donc pas être réalisé car le fichier ne contient pas le code
J'ai déjà fait un test sur le PERSONAL.XLSB, avec un Msgbox "TEST", mais la boite s'affiche à l'ouverture d'EXCEL, donc avant même que le fichier en question ne s'ouvre.
En détail:
Je vais sur un site internet de ma boite.
Je vais générer un fichier
Je clique sur un lien pour ouvrir ce fichier
Lorsque ce fichier s'ouvre, je veux tester la cellule A1 pour ce qu'il contient
Si il contient ce que je cherche je l'enregistre à tel endroit
Il faudrait donc que le code se déclenche à chaque ouverture d'un fichier EXCEL.
dysorthographie
Messages postés92Date d'inscriptionjeudi 27 janvier 2022StatutMembreDernière intervention 3 avril 20245 Modifié le 29 janv. 2022 à 00:03
Option Explicit
Private WithEvents appXls As Excel.Application
Private Wbs As New Collection
Private Sub Workbook_Open()
Set appXls = Excel.Application
End Sub
Private Sub appXls_WorkbookOpen(ByVal Wb As Workbook)
MsgBox Wb.Name
On Error Resume Next
Wbs.Add New WorkOpen, Wb.Name
Set Wbs(Wb.Name).WBpXls = Wb
Set Wbs(Wb.Name).Parent = Wbs
On Error GoTo 0
MsgBox Wb.Sheets(2).Range("A5")
End Sub
dans un module de classe que j'ai appelé WorkOpen
Public WithEvents WBpXls As Workbook
Public Parent As Collection
Private Sub Class_Terminate()
Set WBpXls = Nothing
Set Parent = Nothing
End Sub
Private Sub WBpXls_BeforeClose(Cancel As Boolean)
Parent.Remove WBpXls.Name
End Sub
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 20221 29 janv. 2022 à 00:53
Alors là BRAVO et MERCI.
C'est exactement ce dont j'avais besoin.... Super Génial Génial Génial !!!
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 20221
>
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 2022 29 janv. 2022 à 01:55
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 20221 28 janv. 2022 à 12:12
Merci beaucoup pour votre intérêt, néanmoins, n'étant pas expert, je n'ai pas tout saisi, mais j'ai compris que le lien portait sur le traitement de fichier EXCEL non ouvert, et çà, je pense que je saurais faire (peut-être différemment).
Hors dans mon cas, le fichier à analyser n'est pas enregistrer qq part, il s'ouvre automatiquement en cliquant sur un lien internet.
Belle journée à tous
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137
>
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 2022 28 janv. 2022 à 14:13
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 20221
>
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024 28 janv. 2022 à 16:56
Merci pour votre intérêt, mais je ne pense pas que ce soit çà.. le sujet du lien porte sur des classeurs déjà ouverts. Moi je cherche comment déclencher un code à l'ouverture d'un classeur (et ce classeur ne peut pas contenir le code à executer)...
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137
>
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 2022 28 janv. 2022 à 17:45
tu écris:
Je clique sur un lien pour ouvrir ce fichier
Lorsque ce fichier s'ouvre, je veux tester la cellule A1 pour ce qu'il contient
le fichier est bien ouvert!
Où est le problème?
Moi ce que je propose c'est de mettre dans un classeur ce code que tu lanceras à l'ouverture de ton classeur:
Faire Alt F11 pour accéder à l'éditeur.
Insérer un module et mettre ce code:
Sub SelectWB()
Dim xWBName As String
Dim xWb As Workbook
Dim xSelect As String, xTitleId As String
Dim i As Integer
i = 1
For Each xWb In Application.Workbooks
Cells(i, 1) = xWb.Name
i = i + 1
xWBName = xWBName & xWb.Name & vbCrLf
Next
xTitleId = "Choix classeurs"
xSelect = Application.InputBox("Entrez l'un des classeurs ci-dessous:" & vbCrLf & xWBName, xTitleId, Range("A2").Value, Type:=2)
Application.Workbooks(xSelect).Activate
MsgBox Sheets(1).Range("A1").Value
'mettre le code d'enregistrement si besoin
End Sub
@+
Fanfandu17
Messages postés15Date d'inscriptionsamedi 5 mars 2016StatutMembreDernière intervention 5 octobre 20221
>
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024 28 janv. 2022 à 22:36
Bonsoir.
Je viens de faire votre manip et je vous remercie pour ce code. Néamoins ce n'est pas ce que je recherche.
Je dois saisir un code afin qu'EXCEL lance l'execution dun code à l'ouverture de n'importe fichier EXCEL. Le code ne peut pas être dans un fichier ni s'executer avec ThisWorkBook_Open car je vueux tester tous les fichiers qui s'ouvre, peut importe la méthode d'ouverture et leur nombre.. il doit se lancer automatique via une détection ou un évenemnt d'ouverture d'un fichier EXCEL. Par conséquent, le code doit tester le fichier qui s'ouvre, voir si la condition est requise pour l"enregistrer automatriquement qqpart, et si la condition n'est pas requise , se stopper et laisser la main à l'utilisateur pour faire ce qu'il veut dans EXCEL en tulisation normale....
Donc un code dans un fichier EXCEL qui s'excutera lorsque le fichier contenant le code s'ouvrira ne convient pas.
Et un code dans le personnal.xlsb ne s'execute qu'à l'ouverture de l'application EXCEL ( et non pas à l'ouverture d'une fichier EXCEL)...
Je cherche et je ne trouve pas, si çà se trouve ce n'est pas possible...
29 janv. 2022 à 00:53
C'est exactement ce dont j'avais besoin.... Super Génial Génial Génial !!!
29 janv. 2022 à 01:55
Merci à tous