Erreur 424
mdelusse56
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je me permets de vous contacter car je suis bloquée sur mon code VBA du moment :)
J'ai créée une fonction qui permet de vérifier un fichier existant et de l'ouvrir.
Je veux donc utiliser cette fonction pour ouvrir mon fichier Excel et je souhaite copier les cellules d'une feuille de ce classeur vers celui ou je travaille actuellement (ce qui fonctionne) mais juste après, ma dernière ligne (close) ne passe pas, j'ai une erreur avant 424 (objet requis) et je ne sais pas pourquoi…
Voici le code :
En vous remerciant par avance pour votre aide :)
Je me permets de vous contacter car je suis bloquée sur mon code VBA du moment :)
J'ai créée une fonction qui permet de vérifier un fichier existant et de l'ouvrir.
Je veux donc utiliser cette fonction pour ouvrir mon fichier Excel et je souhaite copier les cellules d'une feuille de ce classeur vers celui ou je travaille actuellement (ce qui fonctionne) mais juste après, ma dernière ligne (close) ne passe pas, j'ai une erreur avant 424 (objet requis) et je ne sais pas pourquoi…
Voici le code :
Public Function FonctionFichier(Fichier As String) If Len(Dir(Fichier)) = Empty Then MsgBox "Le fichier n'a pas été trouvé." End If Dim Application As Object Set Application = CreateObject("Shell.Application") Application.Open (Fichier) End Function --- Sub Test() Dim wkDest As Workbook Set wkDest = FonctionFichier("C:\Classeur1.xlsx") wkDest.Sheets("Feuil1").Cells.Copy ThisWorkbook.Sheets("Tarifs").Range("A1") wkDest.Close True End Sub
En vous remerciant par avance pour votre aide :)
A voir également:
- Erreur 424
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
moi je ferais plutôt:
merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
moi je ferais plutôt:
Set wkDest = workbooks.open("C:\Classeur1.xlsx")
Bonjour,
voir ici comment utiliser la fonction:
https://excel-malin.com/codes-sources-vba/vba-verifier-si-le-fichier-existe/
voir ici comment utiliser la fonction:
https://excel-malin.com/codes-sources-vba/vba-verifier-si-le-fichier-existe/
Bonjour,
Cette partie de ton code sous-entends que la fonction FonctionFichier doit retourner un Objet Workbook.
Or là, elle ne retourne rien.
Nulle part, dans ta fonction, on ne voit une ligne qui commence par :
Pour le coup, si tu souhaites conserver le même type de schéma avec une fonction, il faut :
1- que tu types ta fonction "As Workbook"
2- que tu lui attribues une valeur de retour.
Exemple :
Ce code est donné ici à titre d'exemple.
Il est bien entendu que ce type de fonction n'est pas "réellement" utile...
Cette partie de ton code sous-entends que la fonction FonctionFichier doit retourner un Objet Workbook.
Dim wkDest As Workbook Set wkDest = FonctionFichier("C:\Classeur1.xlsx")
Or là, elle ne retourne rien.
Nulle part, dans ta fonction, on ne voit une ligne qui commence par :
FonctionFichier = .....
Pour le coup, si tu souhaites conserver le même type de schéma avec une fonction, il faut :
1- que tu types ta fonction "As Workbook"
2- que tu lui attribues une valeur de retour.
Exemple :
Option Explicit Public Function FonctionFichier(Fichier As String) As Workbook If Dir(Fichier) <> vbNullString Then Set FonctionFichier = Workbooks.Open(Fichier) End If End Function Sub essai() Dim wb As Workbook Set wb = FonctionFichier("C:\Users\Desktop\Importer tableau.xlsm") If Not wb Is Nothing Then 'Ton code ici End If End Sub
Ce code est donné ici à titre d'exemple.
Il est bien entendu que ce type de fonction n'est pas "réellement" utile...
Le problème c’est que du coup ma fonction ne serait plus utilisée ..
si tu veux utiliser une fonction, commence peut-être par un exercice plus simple. par exemple une fonction qui double un nombre.