bloutch
Messages postés3Date d'inscriptionvendredi 23 septembre 2011StatutMembreDernière intervention29 septembre 2011
-
27 sept. 2011 à 16:14
bloutch
Messages postés3Date d'inscriptionvendredi 23 septembre 2011StatutMembreDernière intervention29 septembre 2011
-
29 sept. 2011 à 11:07
Bonjour,
je travaille sur un code qui a été fait par quelqu'un d'autre avant moi et étant très débutant en VBA je n'arrive pas à comprendre ce qu'il fait. Est-ce que quelqu'un pourrait me l'expliquer par étape ?
Function FileSystem(titre As String, fType As MsoFileDialogType)
Dim fDialog As FileDialog
Dim selectedfile As String
Dim vrtSelectedItem As Variant
Set fDialog = Application.FileDialog(fType)
With fDialog
.Title = titre
.AllowMultiSelect = False
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
selectedfile = vrtSelectedItem
Next vrtSelectedItem
Else
selectedfile = ""
End If
End With
Set fDialog = Nothing
FileSystem = selectedfile
End Function
Public Sub newreport()
Dim fPRKS As String
fPRKS = FileSystem("Sélection du fichier PRKS", msoFileDialogFilePicker)
If fPRKS = "" Then
GoTo ending
End If
Application.DisplayAlerts = False
ActiveWindow.Close SaveChanges:=False
Application.DisplayAlerts = True
Exit Sub
err_read_file:
MsgBox Err.Description, vbExclamation, "Read File"
Exit Sub
End Sub
Sub TransfertData()
Dim acc_name As String, aal_alias As String, fnd_name As String, fal_alias As String, txn_txn_date As String, _
txt_code As String, txn_units As String, fpr_unit_price As String, txn_amount As String, fund_cur_alias As String, account_cur_alias As String, _
mc_txn_amount As String, exchange_rate As String, isin As String, mcx_txn_amount As String, acc_nsrd_sell_location As String, txt_memo As String
Dim fxrate As Double
Dim i As Integer, int_row_count As Integer, int_sign As Integer
i = 1
int_row_count = 2
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 29 sept. 2011 à 10:14
Tu comprendrais cependant très très très vite en ouvrant ton aide VBA sur les mots :
1) Mid
2) Instrrev
Et tu comprendrais encore plus vite en passanty en mode debug et en découvrant ce que contient :
Application.VBE.ActiveVBProject.Filename
(tu découvrirais qu'il s'agit d'un chemin completr de fichier)
Il t-e serait alors facile de comprendre que ce que tu n'as pas encore compris est tout simplement une manière d'extraire de ce chemin complet : le seul nom (avec son extension) du fichier concerné
Fais donc des petites expériences, telle celle-ci
toto = "D:\blabla\blibli\bloblo.txt"
MsgBox Mid(toto, InStrRev(toto, "") + 1)
Ce sont souvent là des réflexes assez salutaires et instructifs
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 27 sept. 2011 à 17:30
Bonjour,
1) un code mis ici sans mise en forme et sans indentation ne trouvera pas beaucoup de forumeurs prêts à l'analyser !
2) je n'en ai donc lu que les toutes premières lignes. Et déjà :
.AllowMultiSelect = False ' <<<<=== (1*) ===>> donc on ne pourra y choisir qu'un article
If .Show = -1 Then '====>> qui vet dire en fait : si .show = True (donc qu'on n'a pas annulé)
For Each vrtSelectedItem In .SelectedItems ' ===>> une boucle sur tous les articles ? Quels, tous ? voir point (1*)
selectedfile = vrtSelectedItem
Next vrtSelectedItem
Else
selectedfile = ""
End If
Alors :
je travaille sur un code qui a été fait par quelqu'un d'autre avant moi
S'il a ainsi lui-même tout codé au lance-pierre (et probablement par copier-coller de choses ramassées ici et là et ... apparemment sans v(raiment les comprendre lui non plus) ===>> tu ferais mille fois mieux de tout recoder !
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
bloutch
Messages postés3Date d'inscriptionvendredi 23 septembre 2011StatutMembreDernière intervention29 septembre 2011 29 sept. 2011 à 09:43
Ok merci de cette réponse !
Le truc c'est que j'ai bien peur que mon niveau de vba soit en dessous du sien... Je maitrîse bien les différents conceptes de boucle mais les .select, .allowmultiselect etc, je n'ai jamais vu donc je galère un peu...
C'est la même chose pour la définition de certaine variable, qu'est ce que filedialog ou MsoFileDialogType ?