Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouverture d'un fichier

5 réponses
Avatar
Peponne31
Bonsoir,

je voudrais ouvrir un fichier de type ( M.DURANT Francis 1.xls ) juste en
tappent son N° dans une cellule ( 1 ) sans tenir compte du nom. voici le code
que je possède mais il me renvoie une erreur à cause du nom avant le 1.
Workbooks.Open Chemin & Fich & ".xls" voila,si quelqu'un peut m'aider !!!
Merci à vous.

5 réponses

Avatar
Patrick
Bonjour,

Est-ce que la variable "Chemin" se termine par "" ?

Sinon, le nom complet du fichier sera erroné et il y aura une erreur.

--
Patrick


"Peponne31" wrote:

Bonsoir,

je voudrais ouvrir un fichier de type ( M.DURANT Francis 1.xls ) juste en
tappent son N° dans une cellule ( 1 ) sans tenir compte du nom. voici le code
que je possède mais il me renvoie une erreur à cause du nom avant le 1.
Workbooks.Open Chemin & Fich & ".xls" voila,si quelqu'un peut m'aider !!!
Merci à vous.


Avatar
JLuc
*Bonjour Peponne31*,
Peut être :
Workbooks.Open Chemin & "M.DURANT Francis " & Fich & ".xls"
En supposant que Fich a la valeur "1"

Bonsoir,

je voudrais ouvrir un fichier de type ( M.DURANT Francis 1.xls ) juste en
tappent son N° dans une cellule ( 1 ) sans tenir compte du nom. voici le code
que je possède mais il me renvoie une erreur à cause du nom avant le 1.
Workbooks.Open Chemin & Fich & ".xls" voila,si quelqu'un peut m'aider !!!
Merci à vous.


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
MichDenis
Dans le code module de la feuille où tu entres ton numéro 1
copie ce qui suit :
Tu dois adapter le chemin où tu places tes fichiers..
la fonction "InStrRev" requiert la version excel 2000 ou plus récent

'--------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Chemin As String, F As String
Chemin = "c:denis" ' à adpater
On Error Resume Next
If Target.Address = Range("A1").Address Then
If Target <> "" Then
If IsNumeric(Target) Then
F = Dir(Chemin & "*.xls")
Do While F <> ""
If Trim(Replace(Mid(F, InStrRev _
(F, " ", -1), 100), ".xls", "")) = CStr(Target) Then
If Err = 0 Then
Workbooks.Open Chemin & F
Exit Do
Else
Err = 0
F = Dir()
End If
Else
F = Dir()
End If
Loop
End If
End If
End If

End Sub
'--------------------------------------





"Peponne31" a écrit dans le message de news:

Bonsoir,

je voudrais ouvrir un fichier de type ( M.DURANT Francis 1.xls ) juste en
tappent son N° dans une cellule ( 1 ) sans tenir compte du nom. voici le code
que je possède mais il me renvoie une erreur à cause du nom avant le 1.
Workbooks.Open Chemin & Fich & ".xls" voila,si quelqu'un peut m'aider !!!
Merci à vous.
Avatar
Peponne31
Bonsoir JLuc
ta réponse est bonne mais ne me convient pas,je possède plusieurs fichiers
dont le nom est différent ainsi que le N° et je voudrais rappeler un fichier
uniquement que par son N° en faisant abstraction du nom de la personne
Merci encore

*Bonjour Peponne31*,
Peut être :
Workbooks.Open Chemin & "M.DURANT Francis " & Fich & ".xls"
En supposant que Fich a la valeur "1"

Bonsoir,

je voudrais ouvrir un fichier de type ( M.DURANT Francis 1.xls ) juste en
tappent son N° dans une cellule ( 1 ) sans tenir compte du nom. voici le code
que je possède mais il me renvoie une erreur à cause du nom avant le 1.
Workbooks.Open Chemin & Fich & ".xls" voila,si quelqu'un peut m'aider !!!
Merci à vous.


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Avatar
Peponne31
Bonsoir MichDenis
Merci pour ta réponse, n'est-il pas possible de modifier le code dans ma
feuille ?
je te propose mon code, si tu peux le corriger.Merci
Sub RecopieDevis(Fich)
'Met la date aujourdhui
Range("I12").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveCell.Value = ActiveCell.Value
'Transforme aujourdhui () en valeur
Range("date").Select
ActiveCell.Value = ActiveCell.Value

Dim Chemin As String, Ctr As Integer, Plage As Range, C As Range
Dim NoFacture As Integer, Feuille As String
Chemin = "C:bb terrassementDevis"
Ctr = 21
'Permet de contrôler si un N° de devis existe.
Err = 0
On Error Resume Next
Workbooks.Open Chemin & Fich & ".xls" ' c'est ce code que je veux modifier
If Err = 1004 Then
zz_Clignote
Message = MsgBox("Ce N° de devis n'existe pas !", , "bb terrassement")
Range("J4").Select
Range("J4").Activate
Else
NoFacture = Workbooks("bb
terrassement.xls").Sheets("JournalVentes").Range("A2")
End If
Feuille = ActiveSheet.Name
With Workbooks("bb terrassement.xls").Sheets("Facture1page")
.Range("fnomcli") = Workbooks(Fich &
".xls").Sheets(Feuille).Range("dnomcli1")
.Range("numfacture") = NoFacture
.Range("frue1") = Workbooks(Fich &
".xls").Sheets(Feuille).Range("frue1")
.Range("frue2") = Workbooks(Fich &
".xls").Sheets(Feuille).Range("frue2")
.Range("fville") = Workbooks(Fich &
".xls").Sheets(Feuille).Range("fville")
.Range("fcp") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("fcp")
.Range("téléphone") = Workbooks(Fich &
".xls").Sheets(Feuille).Range("téléphone")
.Range("portable") = Workbooks(Fich &
".xls").Sheets(Feuille).Range("portable")
.Range("fremise") = Workbooks(Fich &
".xls").Sheets(Feuille).Range("dremise")
.Range("B17") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("B17")
.Range("H4") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("H4")
.Range("H5") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("H5")
.Range("I51") = Workbooks(Fich & ".xls").Sheets(Feuille).Range("I51")
Set Plage = Workbooks(Fich & ".xls").Sheets(Feuille).Range("A21:A50")
For Each C In Plage

.Range("A" & Ctr) = C.Value
.Range("F" & Ctr) = C.Offset(0, 1)
.Range("G" & Ctr) = C.Offset(0, 2)
.Range("H" & Ctr) = C.Offset(0, 3)
Ctr = Ctr + 1

Next C

Workbooks(Fich & ".xls").Close False
End With
End Sub


Dans le code module de la feuille où tu entres ton numéro 1
copie ce qui suit :
Tu dois adapter le chemin où tu places tes fichiers..
la fonction "InStrRev" requiert la version excel 2000 ou plus récent

'--------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Chemin As String, F As String
Chemin = "c:denis" ' à adpater
On Error Resume Next
If Target.Address = Range("A1").Address Then
If Target <> "" Then
If IsNumeric(Target) Then
F = Dir(Chemin & "*.xls")
Do While F <> ""
If Trim(Replace(Mid(F, InStrRev _
(F, " ", -1), 100), ".xls", "")) = CStr(Target) Then
If Err = 0 Then
Workbooks.Open Chemin & F
Exit Do
Else
Err = 0
F = Dir()
End If
Else
F = Dir()
End If
Loop
End If
End If
End If

End Sub
'--------------------------------------





"Peponne31" a écrit dans le message de news:

Bonsoir,

je voudrais ouvrir un fichier de type ( M.DURANT Francis 1.xls ) juste en
tappent son N° dans une cellule ( 1 ) sans tenir compte du nom. voici le code
que je possède mais il me renvoie une erreur à cause du nom avant le 1.
Workbooks.Open Chemin & Fich & ".xls" voila,si quelqu'un peut m'aider !!!
Merci à vous.