JerCaz
XLDnaute Occasionnel
Bonjour le forum,
grâce à pas mal de lecture sur le forum, j'arrive très modestement à me débrouiller en VBA...
Mais là, je sèche!!!
Pour le centre hospitalier où je travaille, j'ai donc créé un fichier de gestion de l'occupation des lits dans les différents services. Ce fichier est mensuel : j'ai donc un fichier "bed manager - 01-12.xls", un autre nommé "bed manager 02-12.xls", etc... Dans ces fichiers, j'ai un onglet récapitulatif par semaine (ex: dans février, j'ai les onglets semaine 5, semaine 6, semaine 7, etc...)
J'ai besoin de comparer des données avec le fichier de l'année précédente. (par exemple, pour le mois de janvier
Pour cela, grâce à l'enregistreur de macros, j'ai réussi à créer un bout de code qui importe les données de l'année précédente.
Mais le problème suivant se pose : il arrive parfois que l'année précédente, le semaine X ou Y ne faisait pas partie du fichier car pas partie du même mois.
Pour éviter que ma macro ne me crée des liens inexistants (et donc afficher des #REF!#), je souhaite vérifier l'existence de feuilles dans un classeur Excel fermé.
En fouillant sur le forum, j'ai trouvé ce fil:
https://www.excel-downloads.com/threads/tester-lexistence-dune-feuille.57585/
mais le problème, c'est qu'il permet de ne faire la recherche d'une feuille nommée que dans le classeur actif.
Avec mon ami google, j'ai donc trouvé ce code:
Pour ne pas avoir à adapter manuellement ce bout de code chaque mois, j'ai donc essayé de le modifier pour qu'il repère seul le mois et l'année du fichier ouvert, pour rechercher celui de l'année précédente (Cf. document joint).
Mais cela ne fonctionne pas: j'obtiens une erreur de compilation / Type d'argument ByRef incompatible
Essayant d'adapter bêtement le code sans vraiment comprendre ce que l'erreur signifie, je viens donc ici solliciter votre aide.
Vous remerciant par avance pour l'aide que vous pourrez m'apporter,
Bien cordialement,
Jérôme.
grâce à pas mal de lecture sur le forum, j'arrive très modestement à me débrouiller en VBA...
Mais là, je sèche!!!
Pour le centre hospitalier où je travaille, j'ai donc créé un fichier de gestion de l'occupation des lits dans les différents services. Ce fichier est mensuel : j'ai donc un fichier "bed manager - 01-12.xls", un autre nommé "bed manager 02-12.xls", etc... Dans ces fichiers, j'ai un onglet récapitulatif par semaine (ex: dans février, j'ai les onglets semaine 5, semaine 6, semaine 7, etc...)
J'ai besoin de comparer des données avec le fichier de l'année précédente. (par exemple, pour le mois de janvier
Pour cela, grâce à l'enregistreur de macros, j'ai réussi à créer un bout de code qui importe les données de l'année précédente.
Mais le problème suivant se pose : il arrive parfois que l'année précédente, le semaine X ou Y ne faisait pas partie du fichier car pas partie du même mois.
Pour éviter que ma macro ne me crée des liens inexistants (et donc afficher des #REF!#), je souhaite vérifier l'existence de feuilles dans un classeur Excel fermé.
En fouillant sur le forum, j'ai trouvé ce fil:
https://www.excel-downloads.com/threads/tester-lexistence-dune-feuille.57585/
mais le problème, c'est qu'il permet de ne faire la recherche d'une feuille nommée que dans le classeur actif.
Avec mon ami google, j'ai donc trouvé ce code:
Code:
Sub essai()
'essai par exemple sur une feuille appelée rencontre dans le classeur actif
If existsheet(ActiveWorkbook, "rencontre") Then
MsgBox "existe"
Else
MsgBox "n'existe pas"
End If
End Sub
Function existsheet(wb As Workbook, ws As String) As Boolean
On Error Resume Next
Set wse = wb.Sheets(ws)
If Err.Number <> 0 Then
Err.Clear
Exit Function
End If
existsheet = True
End Function
Pour ne pas avoir à adapter manuellement ce bout de code chaque mois, j'ai donc essayé de le modifier pour qu'il repère seul le mois et l'année du fichier ouvert, pour rechercher celui de l'année précédente (Cf. document joint).
Mais cela ne fonctionne pas: j'obtiens une erreur de compilation / Type d'argument ByRef incompatible
Essayant d'adapter bêtement le code sans vraiment comprendre ce que l'erreur signifie, je viens donc ici solliciter votre aide.
Vous remerciant par avance pour l'aide que vous pourrez m'apporter,
Bien cordialement,
Jérôme.