Fichier : Lecture seule

Bonjour à tous,

Par moment, à l'ouverture d'un fichier en cours de programmation, il arrive qu'il ne s'ouvre qu'en "lecture seule",

- Je fais donc un enregistrer-sous (autre indice) pour pouvoir travailler.

mais je ne peux pas supprimer la version précédente, sans avoir redémarrer l'ordi.(même en fermant Excel)

Avez-vous une idée de ce qui provoque cela ?

Je pense à des variables qui resteraient en mémoire ou autre ?

Sans doute un manque dans mes macros ! , comment y remédier ?

Bonne journée

Amicalement

Claude.

Bonsoir à tous,

Voici le message que j'obtiens à l'ouverture (pas toujours)

message

en redémarrant l'ordi. je n'ai plus ce message

une idée ?

Claude.

Salut le forum

Claude, tu n'as pas un message du style

Le programme va être fermé car il a effectué une opération non conforme

ensuite à l'ouverture il est en lecture seule.

Si oui, le redémarrage de l'ordinateur est souvent obligatoire.

Mytå

Bonjour à tous,

Mytå, non je n'ai pas ce type de message,

Par contre, après avoir fait un enregistrer-sous (nouvel indice), et que je veux supprimer

le fichier précédent, j'ai un message qui me dit que des ressources sont en cours

d'utilisation. et même si je ferme tout Excel compris.

seul recours : rebouter.

Il faut dire que c'est un fichier en cours et qu'il n'est pas encore bien stabilisé, il m'arrive

de faire du pas-à-pas et ne pas terminer la macro, (des Set qui ne sont pas déclarés = Nothing ??), peut-être ?

Amicalement

Claude.

Claude,

Juste une idée. Vérifie que dans tes codes tu ne tentes pas d'ouvrir ton fichier une deuxième fois.

A te relire

Dan

re Dan,

J'ai juste une macro :

Sub Transfert_dans_Archives()
Dim Wbk As String, Wbk2 As String
Dim Lg
Dim EnTete, Cellule
    Wbk = ActiveWorkbook.Name
..........

et + loin Workbooks(Wbk).Activate

mais cette partie du programme est réglée et je ne l'utilise plus (pour le moment)

NOTA: c'est le même fichier que pour les protections.

Bonne journée

Claude.

Re,

Claude, je peux voir la macro entière ?

A te relire

Dan

re,

Dan; te moque pas j'ai fais comme j'ai pu !

Sub Transfert_dans_Archives()
Dim Wbk As String, Wbk2 As String
Dim Lg
Dim EnTete, Cellule
    Wbk = ActiveWorkbook.Name
    Wbk2 = "Visserie_Archives_enCours.xls"
        Application.ScreenUpdating = False
    On Error GoTo ouvre
        Workbooks(Wbk2).Activate
        Sheets("Archives").Activate
        Application.EnableEvents = False

    Workbooks(Wbk).Activate
    Application.EnableEvents = False
        '********** Contrôle en-tête saisie **************
    For Each Cellule In Array("d12", "d13", "d14", "d15", "i12", "i14")
        If IsEmpty(Range(Cellule).Value) Then
            Range(Cellule).Activate
            MsgBox ("Champ  " & ActiveCell.Offset(0, -1) & "  Obligatoire")
            Exit Sub 'Exit For
        End If
            Range("d13") = UCase([d13]) 'majuscule   'client
            Range("i14") = UCase([i14]) 'majuscule   'technicien
            Range("d14") = Application.Proper([d14])
            Range("d15") = Application.Proper([d15])
    Next Cellule
            Range("i13").Formula = "=TODAY()"
    '************* Contrôle N° de Réf (si existant)***********************

    Range("K3").Formula = "=MATCH(d12,[Visserie_Archives_enCours.xls]Archives!b:b,0)" '************
            If IsError(Range("k3")) = False Then
                MsgBox ("Ce N° de Référence existe déjà !" & Chr(10) & "Archivage annulé")
                Range("K3").ClearContents 'efface formule avec liaison
                Range("d12").Activate
                Exit Sub
            End If
    Range("K3").ClearContents 'efface formule avec liaison

    Range("b18").Select
        Do While ActiveCell <> ""
            '****** en-tête ********
             Range("c2") = Range("d12") 'N° Réf
             Range("d2") = Range("i12") 'N° dossier
             Range("e2") = Range("i13") 'date
             Range("f2") = Range("i14") 'Techn
             Range("g2") = Range("d13") 'client
             Range("h2") = Range("d14") 'chantier
             Range("i2") = Range("d15") 'descr
            '*************************
                Set EnTete = Range("[Visserie_Archives_enCours.xls]Archives!b65536").End(xlUp)(2) '***********
                Set Lg = Range(ActiveCell, ActiveCell.Offset(0, 8))

                Range("c2:i2").Copy Destination:=EnTete
                Lg.Copy Destination:=EnTete.Offset(0, 7)
                ActiveCell.Offset(1, 0).Select
        Loop
    '************* initialise_Archive ***********************
    Workbooks(Wbk2).Activate
    Application.EnableEvents = False
    Application.ScreenUpdating = False
        On Error Resume Next
            ActiveSheet.ShowAllData 'affiche tout (filtre)
        On Error GoTo 0
    Dim Titre
    Dim DerLig As Long
    DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
        Range("b10:q" & DerLig).Name = "base"
        Range("b11:b" & DerLig).Name = "Numéro"
        Range("c11:c" & DerLig).Name = "Dossier"
        Range("d11:d" & DerLig).Name = "Date"
        Range("e11:n" & DerLig).Name = "Targ"
            '************* tri ****************
            Application.Goto Reference:="base"
            Selection.Sort Key1:=Range("b10"), Order1:=xlAscending, Key2:=Range("d10") _
            , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom
        Range("k4") = "N°Réf."

        Titre = Format(Application.WorksheetFunction.Min(Range("date")), "mmm yy") & _
         Chr(10) & "à " & Format(Application.WorksheetFunction.Max(Range("date")), "mmm yy")
        ActiveSheet.Shapes("WordArt 14").TextEffect.Text = Titre

            Application.Goto [a9], Scroll:=True
            Range("a10").RowHeight = 0
    Application.EnableEvents = True
  '******************************
        ActiveWorkbook.Save 'enregistre Archives
    MsgBox ("La liste est enregistrée" & Chr(10) & "et le fichier Archives est enregistré")
    Workbooks(Wbk).Activate
Call PurgeCommande
    Application.EnableEvents = True
    Exit Sub

ouvre: 'Workbooks.Open Filename:="C:\Excel2008\Visserie_Archives_enCours.xls" 'chemin à adapter
    Application.Dialogs(xlDialogOpen).Show 'fenêtre fichier ouvrir
    Workbooks(Wbk).Activate
    MsgBox ("Le fichier Archive est maintenant ouvert" & Chr(10) & "Recommencez l'archivage")
End Sub

Claude.

Bonjour à tous,

Apparemment le problème est réglé,

- Je pense que cela venait des protections feuilles, qui provoquait des bugs et empêchait

les macros d'aller à terme et de remettre à zéro les variables ?

Je mets le fil en résolu, quitte à revenir si problème.

Merci à tous

amicalement

Claude.

Rechercher des sujets similaires à "fichier lecture seule"