Erreur sur VBA besoin d'aide je tourne en rond

Sheridana 10 Messages postés jeudi 18 mai 2017Date d'inscription 19 mai 2017 Dernière intervention - 19 mai 2017 à 10:58 - Dernière réponse : Patrice33740 6323 Messages postés dimanche 13 juin 2010Date d'inscription 15 décembre 2017 Dernière intervention
- 19 mai 2017 à 15:20
Bonjour à vous !

Grâce à l'aide de ce forum j'ai pu faire une petite macro de transformation de fichier txt sur excel.
Or j'ai encore un petit soucis je n'arrive pas a nommer mon fichier et ma feuille.
Et j'ai un soucis quand le nom du fichier change selon la date la macro plante. POuvez vous m'aidez ?

J'aimerais que une fois le fichier enregistrer en txt sous le nom de Etatfi.txt la macro marche mais je ne sais pas ou changer le code.

Merci de votre aide ci dessous ma macro


Sub MacroFinancial()
'
' MacroFin
'

'Ouverture du Fichier

fichierETATFI = Application.GetOpenFilename("Fichier Etats Financier (*.*), *.*", , "Sélectionner le fichier Etat financier à transformer")
If fichierETATFI = False Then Exit Sub

Workbooks.OpenText Filename:=fichierETATFI, Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
Array(Array(0, 1), Array(14, 1), Array(53, 1)), TrailingMinusNumbers:=True
nom_fichierETATFI = ActiveWorkbook.Name
nom_feuille_ETATFI = ActiveSheet.Name


Cells.Select
ActiveWorkbook.Worksheets("Financial_Statement_Generator_1").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("Financial_Statement_Generator_1").Sort.SortFields. _
Add Key:=Range("A1:A651"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Financial_Statement_Generator_1").Sort
.SetRange Range("A1:C651")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("E15").Select
Columns("C:C").EntireColumn.AutoFit
Columns("B:B").EntireColumn.AutoFit
Range("C10").Select


Const lideb As Long = 1 ' premiere ligne à traiter
Const co As String = "C" ' colonne à traiter
Dim li As Long, lifin As Long, v As String, vv As Double
lifin = Range(co & Rows.Count).End(xlUp).Row
For li = lideb To lifin
v = Range(co & li).Value
v = Replace(v, ".", "")
v = Replace(v, ",", ".")
vv = Val(v)
vv = Round(vv, 2)
Range(co & li).Value = vv
Range(co & li).NumberFormat = "#,##0.00"
Next li

MsgBox Format(Application.Sum([C:C]), "0.00")

End Sub
Afficher la suite 

1 réponse

Répondre au sujet
Patrice33740 6323 Messages postés dimanche 13 juin 2010Date d'inscription 15 décembre 2017 Dernière intervention - 19 mai 2017 à 15:20
0
Utile
Bonjour,

« je n'arrive pas a nommer mon fichier ... »
Il n'est pas possible de renommer un fichier lorsqu'il est ouvert.
La solution avec un fichier fermé, est d'utiliser l'instruction
Name OldName As NewName
Avec un fichier ouvert tu peux utiliser la méthode SaveAs (Enregistrer sous) avec les arguments adéquats puis de détruire de fichier initial avec l'instruction Kill.

« ... et ma feuille », il suffit d'utiliser la propriété Name, par exemple :
Worksheets("Financial").Name = "NouveauNom"

« j'ai un soucis quand le nom du fichier change selon la date la macro plante » Mais encore ???,
Comment le nom change-t-il ?
Quel message d'erreur ?
Sur quelle ligne de code ?
Commenter la réponse de Patrice33740