Re bonjour
le code suivant fait ce que je t'ai expliqué car le seul moyen que je connaisse pour qu'un fichier ne s'affiche pas à l'ouverture est de l'ouvrir en mode de lecture séquencielle ou binaire ce qui n'est pas le cas présenté ici.
La, on ouvre le fichier quand l'affichage est désactivé, on réactive le classeur originel aprés avoir référencé le nouveau. On peut maintenant travailler facilement sans select et sans que les données soient dans le classeur actif.
A+
Dim Cla_Affiche As Workbook
Dim Cla_Mem As Workbook
If choixfich = 1 Or choixfich = 4 Then
With ProgressBar1
i = 1
j = 0
.Min = 0
.Max = items
Set Cla_Affiche = ActiveWorkbook
ScreenUpdating = False
'ouverture fichier
Set Cla_Mem = Workbooks.OpenText(Filename:="A:\3.txt", Origin:=xlMSDOS, StartRow:=1, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _
:=False, Tab:=True, Semicolon:=True, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), _
Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), _
Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array( _
18, 1), Array(19, 1), Array(20, 1)), TrailingMinusNumbers:=True)
Cla_Affiche.Activate
ScreenUpdating = True
datefich = Cla_Mem.Sheets("3").Range(cellule)
For h = 1 To 19
For v = 5 To 36
If Cla_Mem.Sheets("3").Range(Chr(64 + h) & v) <> "" Then
Var(h, v) = Cla_Mem.Sheets("3").Range(Chr(64 + h) & v)
i = i + 1
Me.Caption = T & " Traitement " & i & " opérations sur " & items
.Value = i
End If
'DoEvents
Next v
Next h
Cla_Mem.Close False