IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

outre passer excel et quand même exécuter une macro excel : possible en VB ?


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Par défaut outre passer excel et quand même exécuter une macro excel : possible en VB ?
    Bonjour,

    je voudrais importer un fichier txt en Filemaker.
    Hors ce fichier doit d'abord être modifié structurellement :
    remplacer des caractères non-imprimable / puis text-to-colums / et en dernier transposer.

    Je sais faire tout cela avec une macro excel dans excel et ensuite importe ce fichier modifié par import en FM.

    Hors mon problème est que je voudrais créer un bouton en Filemaker que exécute ce script/macro mais par exemple en language VB donc sans passer par le programme excel.

    En gros faire les mêmes modifs que la macro excel fait, mais en utilisant VB.

    La raison est que mes clients n’ont peut-être pas tous Excel sur leur machine !

    Pourriez-vous éventuellement m’aider ?

    Voici la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Option Explicit
    Sub ReplaceAndTranspose()
     
    Dim FromChars As Variant
    Dim ToChars As Variant
    Dim iCtr As Long
     
    FromChars = Array(Chr(28))
    ToChars = Array(Chr(124))
     
    If UBound(FromChars) <> UBound(ToChars) Then
    MsgBox "design error--make from/to match"
    Exit Sub
    End If
     
    For iCtr = LBound(FromChars) To UBound(FromChars)
    ActiveSheet.Cells.replace What:=FromChars(iCtr), _
    Replacement:=ToChars(iCtr), LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
    Next iCtr
     
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
    :="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
    1)), TrailingMinusNumbers:=True
    Cells.Select
    Cells.EntireColumn.AutoFit
    Columns("B:B").Select
    Selection.Delete Shift:=xlToLeft
    Columns("C:C").Select
    Selection.Delete Shift:=xlToLeft
    Cells.Select
    With Selection
    .HorizontalAlignment = xlLeft
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
     
    Range("A1:B200").Select
    Selection.Copy
    Sheets.Add
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
    Application.CutCopyMode = False
    ActiveWorkbook.Save
     
    End Sub

  2. #2
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut quel genre de fichier
    Bonjour

    le probleme est que si tu passes par vb tu dois déclarer que objet tu traites quand tu l'instancies

    ça donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim exapp as excel.application
    pour pouvoir traiter ton objet il faut bien savoir de quoi il s'agit pour que ton programme sache ce qu'il recherche et comment il doit le traiter

    si ils n'utilisent pas excel alors ils utilisent koi ??

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Par défaut
    hmmm bien vue, je venais de lire justement qqchose à ce sujet.

    Un autre language de codage sinon ?

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Ce que tu fait sous Excel ces du script, alors tu peut le faire en VBS, Visual Basic Script. D'ailleurs il y a un sous forum sur le VBS existant sur ce site. Un fichier VBS peut être éditer avec n'importe quel éditeur, et son exécution peut être faite avec l'interpreteur de windows. Pour que windows le fasse automatiquement il suffit de donner l'extension ".vbs" au fichier de script.
    Néanmoins si tu lit dans un fichier Excel le contenu de cellule, quelque soit le language que tu utilises, tu seras obligé d'ouvrir le fichier excel via le script. Mais tu n'auras pas besoin de lancer Excel pour lancer le script, juste lancer Excel à partir du script pour lire les données.

  5. #5
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut trouves une parade
    reuu

    si tu sais limité le nombres de format de fichiers tu peux créer une interface qui ferait un niveau d'abstraction

    et selon le format il ira choisir la méthode, grosso merdo, ça donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if .xls then
    extraireXls (monfichier)
    elseif .txt then
    extraireTxt(monfichier)
    end if
    et tu codes les 2 méthodes avec les 2 manières selon tel ou tel type de fichier

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Ben pour executer une macro excel il faut excel... !

    sinon pour faire ta modification de format il va falloir en savoir plus sur le format du fichier initial et le format du fichier désiré... tu dois pouvoir ensuite traiter ton fichier texte comme .. un fichier texte..(lol) ... pourrai tu nous en dire plus sur ce fameux format... , ton code excel n'est pas facile à déchiffer sans exemple...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Exécuter une macro Excel en passant des arguments
    Par tarnx dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/12/2009, 09h40
  2. [AC-2003] Exécuter une macro Excel depuis Access
    Par tarnx dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/12/2009, 13h16
  3. [AC-2003] Exécuter une macro Excel depuis du code VBA
    Par denisw95 dans le forum VBA Access
    Réponses: 12
    Dernier message: 03/12/2009, 15h59
  4. exécuter une macro excel sous access
    Par smix13 dans le forum VBA Access
    Réponses: 10
    Dernier message: 03/02/2009, 08h51
  5. Réponses: 4
    Dernier message: 17/07/2008, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo