Erreur 9
Bonjour,
Je voudrai ouvrir un fichier excel fermé sur le bureau et déplacer l'onglet de la feuille 1 vers le fichier excel ouvert pour remplacer l'onglet 1 du fichier 1 par celui du fichier fermé
Mon code est le suivant (mais j'ai l'erreur 9 qui apparaît en surlignant la dernière ligne de code)
Merci par avance pour vos suggestions
Cordialement
Cam
Je voudrai ouvrir un fichier excel fermé sur le bureau et déplacer l'onglet de la feuille 1 vers le fichier excel ouvert pour remplacer l'onglet 1 du fichier 1 par celui du fichier fermé
Mon code est le suivant (mais j'ai l'erreur 9 qui apparaît en surlignant la dernière ligne de code)
Dim continue As String
If Sheets(1).Name = "CPTES DIANE" Then
continue = MsgBox(prompt:="ANAFI contient déja un onglet comportant des données importées de DIANE. Voulez-vous continuer et supprimer cet onglet?", Buttons:=vbYesNo, Title:="Attention")
If continue = vbYes Then
Sheets(1).Delete
ElseIf continue = vbNo Then Exit Sub
End If
End If
Workbooks.Open (Fichier)
Workbooks(Fichier).Sheets(1).Move Before:=Workbooks(ANAFI_Name).Sheets(1)
Workbooks(ANAFI_Name).Sheets(1).Name = "CPTES DIANE"
Workbooks(Fichier).Close savechanges:=False
Merci par avance pour vos suggestions
Cordialement
Cam
2 réponses
-
ContributeurBonjour,
Cette macro est curieuse car il exécute les dernières instructions même si le premier IF donne faux.
Il me semble plus logique de coder comme cela :Dim continue As String If Sheets(1).Name = "CPTES DIANE" Then continue = MsgBox(prompt:="ANAFI contient déja un onglet comportant des données importées de DIANE. Voulez-vous continuer et supprimer cet onglet?", Buttons:=vbYesNo, Title:="Attention") If continue = vbYes Then Sheets(1).Delete Workbooks.Open (Fichier) Workbooks(Fichier).Sheets(1).Move Before:=Workbooks(ANAFI_Name).Sheets(1) Workbooks(ANAFI_Name).Sheets(1).Name = "CPTES DIANE" Workbooks(Fichier).Close savechanges:=False End If End If
A tester-
-
Modérateur@cam75Bonjour tout le monde,
Essayez en rendant Workbooks(fichier) actif :
Workbooks(ANAFI_Name).Sheets(1).Name = "CPTES DIANE" Workbooks(Fichier).Activate 'ou .Select, je ne sais plus... Workbooks(Fichier).Close savechanges:=False -
Ci dessous le debut de ma macro si jamais
'I°/Rapatriation des comptes DIANE dans un onglet de ANAFI nommé "DIANE" '1°/ Localisation du fichier sur le PC Call MsgBox(prompt:="Veuillez sélectionner le fichier Excel contenant les comptes complets de la société étudiée exportés de DIANE", Buttons:=vbInformation & vbOKOnly, Title:="Bienvenue") Dim Emplacement As String Emplacement = Application.GetOpenFilename("Fichiers Excel, *.xls") If Emplacement = "Faux" Then Exit Sub '2°/ Récupération du nom du fichier Dim Fichier As String Dim i As Integer Dim FichierSansExtension As String For i = Len(Emplacement) To 1 Step -1 If Mid(Emplacement, i, 1) = "\" Then Exit For Next i Fichier = Mid(Emplacement, i + 1, Len(Emplacement)) FichierSansExtension = Mid(Fichier, 1, Len(Fichier) - 4) -
Modérateur@cam75As tu essayé ma proposition?
-
@pijakuoui cela ne marche pas, j'ai un message erreur compilation...mais merci pour la suggestion
-
-
ContributeurRe Bonsoir,
Il y a une erreur de syntaxe sur le Activate suggéré par pijaku (que je salue au passage).
Je pense que c'est le Move qui perturbe. Essayer avec ces 4 lignes à la fin avec Copy à la place de MoveWorkbooks.Open (Fichier) Workbooks(Fichier).Sheets(1).Copy Before:=Workbooks(ANAFI_Name).Sheets(1) Workbooks(ANAFI_Name).Sheets(1).Name = "CPTES DIANE" Workbooks(Fichier).Close savechanges:=False
Cordialement,-
-
Contributeur@cam75Cela signifie concaténer (coller) 20 avec les deux caractères les plus à droite de la cellule située ligne 9 et colonne i de la première feuille.
Par exemple si les deux derniers caractères à droite c'est "15" alors année = "2015"
-