[VBA/Excel] activation d'un fichier ouvert

Bonjour
apres l'ouveture d'un fichier excel sous vb, je souhaite maintenant l'activé pour pouvoir executer la suite de mon programme.
j'ai utilisé l'instruction suivante
Workbooks(Chemin).Activate
ou chemin represente le fichier ouvert

a l'execution ca me donne sub ou function non definie

je ne sais pas comment resoudre se probleme.

aidez moi je vous en prie

7 réponses

  1. J'ai un pb similaire.

    Je souhaiterais activer des windows dont le nom est variable.

    Exple:

    Dim z As String
    z = "un nom qui va varier dans mon programme"

    Activate(z).Activate

    'Mais vous vous doutez que cette solution ne marche pas... HELP PLEASE?
    2
    1. Bonjour,

      suggestion :

      Option Explicit
      '
      
      Sub cmdTrouver_Click()
      
          Dim Chemin As String, Reponse As Boolean
          Dim Classeur_Maitre As String
          Dim Classeur_Slave As String
      
          Classeur_Maitre = ActiveWorkbook.Name
          Chemin = CurDir & "\Économie.xls"
          Reponse = Application.Dialogs(xlDialogOpen).Show
          'txtChemin.Text = Chemin
          If (Reponse) Then
              Classeur_Slave = ActiveWorkbook.Name
              'fmChoixTypeErreur.Show
              
              Workbooks(Classeur_Maitre).Activate
              MsgBox ActiveWorkbook.Name & vbLf & Range("A1").Value
              
              Workbooks(Classeur_Slave).Activate
              MsgBox ActiveWorkbook.Name & vbLf & Range("A1").Value
          Else
              MsgBox "Aucune ouverture de fichier!"
          End If
          
      End Sub
      '
      

      Lupin
      1
      1. non j'ai mis cette instruction dans un sub commancé par un bouton.
        mais je pense que le probeme viens de workbooks.je pense qu'il ne connais pas
        0
        1. Contributeur
          Est-ce que tu peux nous copier ton code ici ???

          Ca aiderait vachement ! ;)
          0
          1. Private Sub cmdTrouver_Click()

            Chemin = OpenFileDialog("Choississez un fichier...", "Mon fichier (*.xls)" + Chr$(0) + "*.xls" & Chr$(0), OFN_HIDEREADONLY, CurDir, Me.hwnd, App.hInstance)
            txtChemin.Text = Chemin
            ShellExecute Me.hwnd, "open", Chemin, vbNullString, Chemin, SW_SHOWNORMAL
            Workbooks(Chemin).Activate

            'fmChoixTypeErreur.Show
            End Sub

            en fait je veux que le fichier ouvert soit directement actif.
            car dans la suite de mon programme j'ai des range par rapport a un tableau se trouvant sur le fichier ouvert
            0
            1. Bonjour,

              J'ai un probleme , et j'aimerais que tu me donne un coup de main.

              J'ai dans une cellule un chronometre( qui affiche le temsp qui passe sous forme : HH:MM:SS) .Dans une autre cellule je rentre une heure quelconque.

              Puis dans une troisieme cellule, je fais la difference pour avoir le temps écoulé.

              probleme:

              Je voudrais mettre une condition sur la cellule qui affcihe le temps écoulé, de sorte qu'elle ne lance le décompte que :

              solutions envisagées:

              1) si l'heure affichée par la cellule chrono est comprise entre les heures d'ouverture

              2) ou que le decompte soit uniquement activé dés l'ouverture du fichier.

              Merci de ton aide.....
              0
          2. Contributeur
            En fait je me demande si le fait que la macro soit dans un calsseur ne prends pas en compte la feuille ou cellule active du classeur même, à moins d'une instructions spéciale.

            Donc pour la suite, je te conseil de mettre Workbooks(chemin).sheets("Feuil1").range... etc, mais je ne suis pas sûr.

            En espérant que quelqu'un apporte un peu plus de précision sur le sujet.

            @+
            0
            1. Contributeur
              Salut,

              Est-ce que tu as mis tout ton code là ou il en manque un bout ? Parce que si tu ne précise pas de Sub, il est normal que cela ne fonctionne pas...

              @+
              -1