Traduction d'une macro
a
y a t'il quelqu'un pour m'aider à traduire cette macro, Merci
Sub Sauvefdf()
Dim Chemin As String, Fichier As String, Temp As String, fdf As String, i As Integer, g As Integer
ActiveWorkbook.Save
Fichier = ActiveWorkbook.Path + "\" + ActiveWorkbook.Name
Chemin = ActiveWorkbook.Path
ChDir Chemin
Sheets("societe").Select
g = Range("D19") ' Cellule indiquant le nombre de feuillets
g = g - 1
ChDir Chemin
For i = 2 To g
Sheets("fdf" & i - 1).Select
Sheets("fdf" & i - 1).Copy After:=Sheets("fdf" & i - 1)
Sheets("fdf" & i - 1 & " (2)").Select
Sheets("fdf" & i - 1 & " (2)").Name = "fdf" & i
Range("A84 ").Select
ActiveCell.FormulaR1C1 = i + 1
Next i
For i = 0 To g
fdf = "fdf" & i
Sheets(fdf).Select
ActiveSheet.SaveAs Filename:=ActiveSheet.Name & "." & "fdf", FileFormat:=xlTextMSDOS, CreateBackup:=False
Next i
Temp = ActiveWorkbook.Name
Workbooks.Open Filename:=Fichier
Sheets("societe").Select
Workbooks(Temp).Close SaveChanges:=False
End SubG
Salut alban et le forum
traduction en commentaire sous les lignes de code
Sub Sauvefdf() 'titre
'Déclaration des variables de la macro -------------------------------------
Dim Chemin As String, Fichier As String, Temp As String, fdf As String, i As Integer, g As Integer
'Traitement ----------------------------------------------------------------
ActiveWorkbook.Save
'sauvegarde du fichier actif
Fichier = ActiveWorkbook.Path + "\" + ActiveWorkbook.Name
'Variable texte Fichier = Chemin du classeur actif & "\" & nom du classeur actif (manque vraisemblablement l'extension)
Chemin = ActiveWorkbook.Path
'Variable texte Chemin = Chemin du classeur actif
ChDir Chemin
'le répertoire corant est celui du classeur actif
Sheets("societe").Select
'sélectionner l'onglet de nom : societe
g = Range("D19") ' Cellule indiquant le nombre de feuillets
'g=valeur D19 de la feuille active
g = g - 1
'enlever 1 à g et le mettre dans g
ChDir Chemin
'sert à rien, on l'a déjà fait
For i = 2 To g
'pour i = 2, en l'incrémentant de 1, jusqu'à g
Sheets("fdf" & i - 1).Select
'feuille de nom fdfx, avec x allant de 1 à g (sert à rien)
Sheets("fdf" & i - 1).Copy After:=Sheets("fdf" & i - 1)
'copier la feuille active et mettre la copie derrière la feuille active '*** connerie, on va copier la feuille 1 x fois
Sheets("fdf" & i - 1 & " (2)").Select
'selectionner la nouvelle feuille qu'on vient de créer et donc qui est déjà active
Sheets("fdf" & i - 1 & " (2)").Name = "fdf" & i
'la rennommer fdfi
Range("A84 ").Select
'sélectionner la cellule nommée "A84 " : "A84" serait la cellule d'adresse A84, mais avec les espaces, pas sûr
ActiveCell.FormulaR1C1 = i + 1
'cellule active = i+1
Next i
'i suivant
For i = 0 To g
'pour i=0 à g
fdf = "fdf" & i
'variable texte fdf = fdf & i
Sheets(fdf).Select
'selectionner la feuille de nom fdf (fdf & i)
ActiveSheet.SaveAs Filename:=ActiveSheet.Name & "." & "fdf", FileFormat:=xlTextMSDOS, CreateBackup:=False
'feuille active sauvegarder au format texte MSDOS avec pour nom "fdfx.fdf" avec x = la valeur de i
Next i
'i suivant
Temp = ActiveWorkbook.Name
'variable texte Temp = nom fichier actif
Workbooks.Open Filename:=Fichier
'ouvrir le classeur qu'on a sauvegarder au début
Sheets("societe").Select
'sélectionner la feuille societe
Workbooks(Temp).Close SaveChanges:=False
'supprimer le classeur qu'on vient de modifier
End SubC'est du mot-à-mot. Ne connaissant pas le résultat à obtenir, je ne ferais que la constatation que le code me semble... étrange. on copie une feuille g fois en texte RTF (pardon MSDOS), avec un algorithme qui pourrait sans doute être amélioré (trop d'instructions redondantes ou inutiles). Mais, déterminer un raisonnement qu'e sur la base d'un code n'est pas très fiable.
A+