Code VBA pour un TXT dans Excel

Tonio -  
 Tonio -
Bonjour,

J'ai un classeur excel dans lequel j'ai une macro.
Quand je lance cette macro elle m'ouvre un deuxième classeur excel qui comporte deux pages.
La 1ere comporte des données, la deuxième des statistiques sur ces données auto exécutées par la macro.
Je voudrais que lorsque je lance la macro elle m'ouvre et m'intègre dans la 1ere page de mon 2eme classeur un fichier TXT qui est préconfiguré pour s'intégrer dans les colonnes mais surtout qui change tous les jours avec un nom qui sera tjrs ça : lenom.date.txt (format de la date année/mois/jour). Il faut donc en plus une reconnaissance de date.

Merci d'avance pour vos réponses.

12 réponses

  1. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    pour l'acces au fichier texte:
    http://www.info-3000.com/vbvba/fichiertexte.php
    ensuite pour entrer une valeur dans une cellule:
    sheets("nom de la feuille").range("adresse de la cellule, exemple A1").value="ta valeur"
    tu devrai surement utiliser un truc comme par exemple workbook("nom du fichier") devant le sheets pour identifier sur quel fichier tu récupere ou écrit la valeur
    0
  2. Tonio
     
    Je rame !
    J'ai un peu de mal ... je suis pas trop au top sur VBA en écriture.
    0
  3. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    sur quel point as tu des problèmes ?
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Tonio
     
    J'ai pas mal d'erreur et bon j'ai déjà un code assez complet dans mon VBA et j'ai du mal à tout ajouter les lignes sans tout planter

    Voilà mon code sans ajouter ce que je veux.

    Sub KPI()

    djnwemp = Cells(4, 3).Value

    Workbooks.OpenText Filename:="C:\Documents and Settings\troncan1\Desktop\KPI." & djnwemp & ".XLS", _
    Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
    Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
    Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
    TrailingMinusNumbers:=True

    derlig = Sheets(1).Range("A65536").End(xlUp).Row

    Range("KPI!D17").Formula = "=Sumproduct(('Extraction SIGMA'!J4:J" & derlig & "<>1990)*('Extraction SIGMA'!M4:M" & derlig & "<>"""")*('Extraction SIGMA'!M4:M" & derlig & "-'Extraction SIGMA'!L4:L" & derlig & "))/Sumproduct(('Extraction SIGMA'!J4:J" & derlig & "<>1990)*('Extraction SIGMA'!M4:M" & derlig & "<>""""))"

    Range("KPI!F6").Formula = "=SUMPRODUCT(('Extraction SIGMA'!O4:O" & derlig & "-'Extraction SIGMA'!L4:L" & derlig & ">2)*1)"

    Range("B8").Select
    Windows("KPI." & djnwemp & ".xls").Activate
    Sheets("KPI").Select
    Range("D34:E34").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[12],""OUI"")"
    Range("F34:G34").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[10],""NON"")"
    Range("H34").Select
    ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
    Range("H35").Select

    End Sub
    0
  6. Tonio
     
    En gros je veux intégrer mon TXT après l'ouverture du classeur Excel et avant l'exécution des formules puisqu'elles se basent sur mes données qui sont dans mon TXT...
    0
  7. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    utilise l'évenement open de workbook pour l'importation de ton fichier txt sur excel et pour tout ce que tu veu que ca fasse a l'ouverture du fichier
    0
  8. Tonio
     
    J'ai presque trouvé ce que je voulais. Par contre il me crée une nouvelle feuille dans mon fichier excel alors que je veux qu'il copie les infos dans une feuille précise qui est 'Extraction SIGMA'

    Le problème est certainement ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA") mais je ne connais pas la commande...

    Option Explicit
    Dim MonFichier As Variant
    Public Monclasseur As String
    Dim Nblig As Long, i As Long, j As Long
    Public Monchemin As String
    Sub Importation()
    '
    ' Importation Macro
    '

    '
    Dim MonFichier As Variant

    MonFichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If MonFichier <> False Then

    Range("A1").Select
    Workbooks.OpenText Filename:= _
    "C:\Documents and Settings\troncan1\Desktop\KPI.20100128.txt", Origin:= _
    xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
    , ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:= _
    False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1) _
    , Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
    Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
    16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1)), TrailingMinusNumbers _
    :=True
    ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA")

    Range("A1").Select

    End If

    End Sub
    0
  9. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    l'enregistreur de macro sert aussi a trouver la bonne syntaxe ^^
    j'ai trouvé ca:
    Sheets("nom de la feuille a déplacer").Move Before:=Workbooks("fichier où le déplacer").Sheets(numéro ou nom de la feuille qui suivra celle déplacé)
    0
  10. Tonio
     
    En fait le problème est pas de mettre une feuille avant l'autre, je veux que lorsque la macro m'intègre mon fichier texte il ne se mette pas avant une feuille mais dans une feuille précise.
    La il en crée une nouvelle...
    0
  11. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    dans ce cas, le ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA") est completement inutile puisqu'il déplace une feuille

    il faudrai lire chaque ligne du fichier et écrire dans la cellule voulu de la feuille voulu

    j'espere avoir compris le problème (ca reste un peu flou dans ma tête)
    0
  12. Tonio
     
    Ok donc ça je peux le dégager par contre maintenant il faut que je trouve la commande qui me permet d'insérer mes données dans une feuille de mon excel et non d'en créer une nouvelle à coté des autres.
    0