Signaler

Erreur sur VBA besoin d'aide je tourne en rond

Posez votre question Sheridana 10Messages postés jeudi 18 mai 2017Date d'inscription 19 mai 2017 Dernière intervention - Dernière réponse le 19 mai 2017 à 15:20 par Patrice33740
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
Utile
+0
plus moins
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 ?
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !