Ouverture fichier s'il n'est pas ouvert VBa

Résolu/Fermé
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 - Modifié par olympiklyon le 10/06/2011 à 09:56
 Utilisateur anonyme - 17 juin 2011 à 13:07
Bonjour,

J'ai une macro, au début j'ouvre un fichier nommée "essai n1kjh" mais il se peut qu'il soit déja ouvert.
Voici ma macro, l'endroit de l'ouverture est souligné.

___________________________________________________
Sub Macro4()
'
' Macro4 Macro
'
' Touche de raccourci du clavier: Ctrl+o

ligne = ActiveCell.Row
nom = ActiveWorkbook.Name


Selection.Copy
Workbooks.Open "C:\Documents and Settings\JeanMarie\Bureau\essai n1kjh"
Windows("essai n1kjh.xls").Activate
Sheets(Sheets.Count).Select


' Selectionne la première cellule du tableau
Range("B7").Select

' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
NbLigne = NbLigne + 1
Selection.Offset(1, 0).Select
Loop

Selection.PasteSpecial Paste:=xlPasteValues

MsgBox "Ligne " & ActiveCell.Row
Range("B7").Select

' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
NbLigne = NbLigne + 1
Selection.Offset(1, 0).Select
Loop

Windows(nom).Activate
Range("I1").Select
Selection.Copy
Windows("essai n1kjh.xls").Activate
Selection.Offset(-1, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Offset(0, 3).Select
Selection.ClearContents
Selection.Offset(0, 1).Select
Selection.ClearContents

Titre = "Pièces Manquantes"
Message = "Indiquez le nombre pieces manquantes"
MaValeur = InputBox(Message, Titre, Defaut)
Selection = MaValeur

Windows("essai n1kjh.xls").Activate
ActiveWorkbook.Save
___________________________________________________________

Merci d'avance

A+
olympikyon =)
A voir également:

3 réponses

olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 1
15 juin 2011 à 08:47
Merci pour votre aide. mais j'ai plus rapide c'est
On Error Resume Next
Workbooks("essai n1kjh.xls").Activate
If Err then Err.Clear: Workbooks.Open "C:\Documents and Settings\Jeanmarie\Bureau\essai n1kjh.xls"
1
Utilisateur anonyme
10 juin 2011 à 13:35
Bonjour,

Si je comprends bien, tu désire savoir si le fichier est déjà ouvert ?

Exemple :

Option Explicit
'

Sub Macro4()

    Dim Reponse As Boolean
    Dim NomFichier As String
    
    NomFichier = "essai n1kjh.xls"
    Reponse = False
    
    Call TestFichierOuvert(NomFichier, Reponse)
    
    If Not (Reponse) Then
        Workbooks.Open "C:\Documents and Settings\JeanMarie\Bureau\essai n1kjh.xls"
    End If
    
    ' Code ...
    
End Sub
'

Sub TestFichierOuvert(ByVal NomFic As String, ByRef Resul As Boolean)

    Dim Classeur As Workbook
    
    Resul = False
    For Each Classeur In Workbooks
        If (Classeur.Name = NomFic) Then
            Resul = True
        End If
    Next Classeur
    
End Sub
'


Cdt

Lupin
0
Utilisateur anonyme
17 juin 2011 à 13:07
re:

effectivement c'est une solution !

Lupin
0