G
gaelhaj
Guest
Bonjour à tous,
Je commence à peine à me familiariser avec le VBA et à travailler avec les macros.
Bref, mon problème (pour certains d'entre vous il serait probablement assez simple à résoudre mais pour moi un Novice de VBA c'est un peut difficile) est le suivant :
comment faire à chaque fois pour importer un fichier texte quelconque (1) dans une feuille excel puis de mentionner le nombre de lignes et de caractères importés (2)?
1) pour la première phase j'ai adopté ce code :
-------------------------------------------------------------
Sub ImportTxt()
'
' ImportTxt Macro
Workbooks.OpenText Filename:='E:\\AGSERVER\\Ons\\AGSERVER\\test1.txt', Origin _
:=-536, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Cells.Select
selection.Copy
Windows('AGtxtImport.xls').Activate
ActiveSheet.Paste
Range('B10').Select
Windows('test1.txt').Activate
ActiveWindow.Close
Cells.EntireColumn.AutoFit
End Sub
-----------------------------------------------------------
Est-ce qu'on peut l'améliorer et comment ?
2)pour la seconde phase là où je suis bloqué :
je n'arrive pas à trouver une solution pour passer d'une cellule à l'autre et récupérer le nombre de caractères qu'elle contient puis de calculer le nombre total des caractères contenus dans toutes les cellules de la plage.
J'ai écrit ce bout de code qui permet uniquement de retourner le nombre de caractères de la 1ère cellule de la plage :
----------------------------------------------------------
Sub Currentselect()
'
' Currentselect Macro
' La première cellule suite à l'import est B10
ncelldeb = 10
ncell = selection.Count - 1
ncellfin = ncell + 10
With selection
For Each Cell In selection
For compt = ncelldeb To ncellfin
n = Range('B' & compteur).Characters.Count
Next compteur
Next Cell
Range('B6').Value = 'Votre fichier comporte ' & selection.Count & ' lignes et ' & n & ' caractères'
End With
End Sub
----------------------------------------------------------
Je pense que mon problème se situe au niveau des boucles For
mais je n'arrive pas à l'identifier et peut être dans tout le code.
Je serais reconnaissant à quiconque qui peut m'aider à résoudre ce problème et/ou me conseiller.
A bientôt et excuser moi pour ce texte qui est assez long.
Je commence à peine à me familiariser avec le VBA et à travailler avec les macros.
Bref, mon problème (pour certains d'entre vous il serait probablement assez simple à résoudre mais pour moi un Novice de VBA c'est un peut difficile) est le suivant :
comment faire à chaque fois pour importer un fichier texte quelconque (1) dans une feuille excel puis de mentionner le nombre de lignes et de caractères importés (2)?
1) pour la première phase j'ai adopté ce code :
-------------------------------------------------------------
Sub ImportTxt()
'
' ImportTxt Macro
Workbooks.OpenText Filename:='E:\\AGSERVER\\Ons\\AGSERVER\\test1.txt', Origin _
:=-536, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Cells.Select
selection.Copy
Windows('AGtxtImport.xls').Activate
ActiveSheet.Paste
Range('B10').Select
Windows('test1.txt').Activate
ActiveWindow.Close
Cells.EntireColumn.AutoFit
End Sub
-----------------------------------------------------------
Est-ce qu'on peut l'améliorer et comment ?
2)pour la seconde phase là où je suis bloqué :
je n'arrive pas à trouver une solution pour passer d'une cellule à l'autre et récupérer le nombre de caractères qu'elle contient puis de calculer le nombre total des caractères contenus dans toutes les cellules de la plage.
J'ai écrit ce bout de code qui permet uniquement de retourner le nombre de caractères de la 1ère cellule de la plage :
----------------------------------------------------------
Sub Currentselect()
'
' Currentselect Macro
' La première cellule suite à l'import est B10
ncelldeb = 10
ncell = selection.Count - 1
ncellfin = ncell + 10
With selection
For Each Cell In selection
For compt = ncelldeb To ncellfin
n = Range('B' & compteur).Characters.Count
Next compteur
Next Cell
Range('B6').Value = 'Votre fichier comporte ' & selection.Count & ' lignes et ' & n & ' caractères'
End With
End Sub
----------------------------------------------------------
Je pense que mon problème se situe au niveau des boucles For
mais je n'arrive pas à l'identifier et peut être dans tout le code.
Je serais reconnaissant à quiconque qui peut m'aider à résoudre ce problème et/ou me conseiller.
A bientôt et excuser moi pour ce texte qui est assez long.