Retrouver la suite d'une chaine de caractères

Bonjour le forum,

J'utilise un Userform pour faire un search and Replace d'un nom de fichier.

Je rentre le nom du fichier dans un Numéro_Change()

Code :Sélectionner tout - Visualiser dans une fenêtre à part12 ActiveWorkbook.SaveAs FileName:= _

Répertoire + "\" + Numéro + "_CONTENU.xls", FileFormat _ Le numéro est alors modifier.

J'aimerai effectuer une modification: Mon numéro est une chaîne à 16 caractères.

Quand je rentre les 9 premiers, excel me récupère les 7 suivants.

Je pensais à diviser le nom de mon fichier en 2: Numéro => Numéro + Suite.

Je connais la fonction Right() pour extraire les caractères 'une chaîne déjà connues. Est-ce possible de faire l'inverse ?

Je mets en PJ le code de mon Userform.

Merci à vous et bonne journée !

Bonjour,

Utilises la fonction 'Mid' avec cette syntaxe:

Application.WorksheetFunction.Mid(numero,1,9)
Application.WorksheetFunction.Mid(numero,7,9)

'Mid' correpond à le fonction de feuille de calcul 'STXT'. Voir l(aide de cette fonction)

Cdlt

Bonjour jean-Eric,

Désolé, je n'ai pas compris ce que tu as voulu dire:

Jean-Eric a écrit :

@ supprimer

=> Pb d'actualisation de la page, désolé j'ai mal mis les balises, un bout du code:

Set fs = Application.FileSearch
With fs
    .LookIn = Répertoire 'Cherche le répertoire
    .FileName = Numéro + "_CONTENU.xls" 'Cherche le numéro rentré dans le Userform
    If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
        Message.Caption = "FICHIER EXISTANT"
    Else
    Workbooks.Open FileName:= _
        Répertoire + "\A_copier_CONTENU.xls", UpdateLinks:=0 'Fichier tampon
    Range("B1").Select
    Selection.Value = Numéro 'Sélectionne le numéro puis le remplace
    ActiveWorkbook.SaveAs FileName:= _
        Répertoire + "\" + Numéro + Suite + "_CONTENU.xls", FileFormat _
        :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
        False, CreateBackup:=False
    ActiveWorkbook.Close
    End If
End With

En rentrant 'Numéro' dans mon Userform je mets les 9 premiers caractères.

Le soucis c'est que 'Suite' n'est pas inscrit sur mon classeur excel, et si j'ai bien compris l'aide sur Mid je retrouve le nombre de caractères spécifiés à partir de la position spécifiée.

Merci

Re,

J'ai pensé un court instant me tromper de sujet, alors j'ai supprimé, pour répondre à nouveau

Cdlt

Re Jean-Eric,

J'ai vu ton deuxième message après avoir répondu à ce que tu m'as proposé, je n'avais pas actualisé la page my bad :/.

Du coup pour retrouver un fil dans l'ordre je copie mon précédent post:

Pb d'actualisation de la page, désolé j'ai mal mis les balises, un bout du code:

Tout sélectionner
Set fs = Application.FileSearch
With fs
    .LookIn = Répertoire 'Cherche le répertoire
   .FileName = Numéro + "_CONTENU.xls" 'Cherche le numéro rentré dans le Userform
   If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
        Message.Caption = "FICHIER EXISTANT"
    Else
    Workbooks.Open FileName:= _
        Répertoire + "\A_copier_CONTENU.xls", UpdateLinks:=0 'Fichier tampon
   Range("B1").Select
    Selection.Value = Numéro 'Sélectionne le numéro puis le remplace
   ActiveWorkbook.SaveAs FileName:= _
        Répertoire + "\" + Numéro + Suite + "_CONTENU.xls", FileFormat _
        :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
        False, CreateBackup:=False
    ActiveWorkbook.Close
    End If
End With

En rentrant 'Numéro' dans mon Userform je mets les 9 premiers caractères.

Le soucis c'est que 'Suite' n'est pas inscrit sur mon classeur excel, et si j'ai bien compris l'aide sur Mid je retrouve le nombre de caractères spécifiés à partir de la position spécifiée.

Encore merci pour ton aide

Re,

A tester si j'ai compris la question.

Cdlt

Option Explicit
Public x As String
Private Sub CmdOk_Click()
      Dim L
10        Message.Caption = "Import des données de la FI"
20        Numéro_copier = "A_copier"
30        Range("A1").Select
40        Selection.End(xlDown).Select
50        numéro = Numéro_TA.Text    'Pour modifier le nom aller dans les paramètres
60        x = Application.WorksheetFunction.Mid(numéro, 1, 9)
70        x = x & " " & Application.WorksheetFunction.Mid(numéro, 10, 7)
80        Répertoire = "chemin"    'Adapter le chemin
90        ChDir Répertoire
100       Set fs = Application.FileSearch
110       With fs
120           .LookIn = Répertoire    'Cherche le répertoire
130           .Filename = numéro + "_CONTENU.xls"    'Cherche le numéro rentré dans le Userform
140           If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
150               Message.Caption = "FICHIER EXISTANT"
160           Else
170               Workbooks.Open Filename:= _
                      Répertoire + "\A_copier_CONTENU.xls", UpdateLinks:=0    'Fichier tampon
180               Range("B1").Select
190               Selection.Value = numéro    'Sélectionne le numéro puis le remplace
200               ActiveWorkbook.SaveAs Filename:= _
                      Répertoire + "\" + x + "_CONTENU.xls", FileFormat _
                      :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
                      False, CreateBackup:=False
210               ActiveWorkbook.Close
220           End If
230       End With
240       Message.Caption = "TRAITEMENT EN COURS"
250       L = Selection.Row    'Selection de la ligne
260       Range("A" & L).Select    'Nom de la FI en colonne A
270       Numéro_copier = Selection.Value
280       Selection.AutoFill Destination:=Range("A" & L & ":A" & L + 1), Type:=xlFillDefault
290       Range("A" & L & ":A" & L + 1).Select
300       Rows(L & ":" & L).Select
310       Selection.Copy
320       L = L + 1    'Copie des formules
330       Rows(L & ":" & L).Select
340       ActiveSheet.Paste
350       Application.CutCopyMode = False
360       Selection.Replace What:=Numéro_copier, Replacement:=numéro, LookAt:= _
                            xlPart, SearchOrder:=xlByRows, MatchCase:=False
370       Range("a" & L).Select
380       ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
                                     Répertoire + "\" + numéro + "_CONTENU.xls"    'Lien vers le fichier excel
390       Message.Caption = "ACTION TERMINEE"
End Sub

Re,

Super, c'est bien ce qu'il me faut !

Merci beaucoup pour ton aide !

Bonne après-midi et @+

Rechercher des sujets similaires à "retrouver suite chaine caracteres"