Erreur sur VBA besoin d'aide je tourne en rond
Sheridana
Messages postés
10
Statut
Membre
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
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
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
A voir également:
- Erreur sur VBA besoin d'aide je tourne en rond
- Supprimer rond bleu whatsapp - Guide
- Rond vert sur snap - Forum Snapchat
- Ventilateur carte graphique ne tourne pas - Forum Carte graphique
- Numero rond ✓ - Forum Word
- Rond ou trait pour allumer - Forum Word
1 réponse
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
« ... et ma feuille », il suffit d'utiliser la propriété Name, par exemple :
« 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 ?
« 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 NewNameAvec 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 ?