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)

 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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    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
    1. Merci bcp mais la même erreur apparaît pour la dernière ligne du code..
    2. 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
    3. 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)
    4. @pijakuoui cela ne marche pas, j'ai un message erreur compilation...mais merci pour la suggestion
  2. Contributeur
    Re 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 Move
    Workbooks.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,
    1. en effet merci bcp cela marche!

      comme je suis débutant et assez mauvais pour le moment, pourriez vous m'aider à déchiffrer cela:

      Année = "20" & Right(Worksheets(1).Cells(9, i).Value, 2)

      Merci par avance
    2. 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"