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

Macros et VBA Excel Discussion :

Division après insertion d'un fichier .obj [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Par défaut Division après insertion d'un fichier .obj
    Bonjour bonjour,

    Comme vous pouvez le voir, je suis un débutant (autant sur ce forum que sur VBA Excel) et j'ai besoin de votre aide. Je vous explique ma situation :
    Dans le cadre d'un projet je dois analyser des fichiers ".obj" (la seconde pièce jointe est un exemple) qu’inséreraient les utilisateurs c'est à dire je dois étudier l'exposition au soleil d'objets 3D. Pourquoi des fichiers .obj ? Parce que ça me permettrait de décomposer une surface complexe en triangle et ainsi rendre l'analyse surfacique plus simple. De plus il est facile de modifier les couleurs avec un format .obj.
    Voilà donc mon problème, lorsque j'insère un fichier .obj, il faut que j'effectue 3étapes afin d'avoir un "beau tableau" (ces étapes sont expliquées dans la la première pièce jointe). Je souhaiterai que ces paramètres se règlent automatiquement ainsi n'importe quel utilisateur aura juste à insérer son fichier .obj (en utilisant le fichier .mtl associé)
    Ainsi à partir de ces triangles se déduisent leur aire et leur orientation, et je peux insérer ces données dans mon programme afin d'analyser les performances. Par la suite je devrai le compiler de manière à être au format .mtl, mais je n'en suis pas encore là.

    Je vois pas du tout comment faire... Enfin tout d'abord je pensais sélectionner une case, dans un nouveau Worksheet, où il me collerait toutes ces données mais après l'étape de division est encore obscure ... Il faudrait qu'à chaque "espace" on change de colonne et à chaque retour à la ligne, on change de ligne. C'est possible à coder ?



    Merci de votre aide

    demarche_file_obj.pdf
    Edit : Je viens de revoir mon pdf, je me suis trompé à la page 2, le paramètre est : "délimité" et non "largeur fixe".


    dometriangle_test5.zip


    Edit : avec quelques recherches, j'ai peut-être trouvé une solution concernant le retour à la ligne avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CelluleDepart = ActiveCell.Value
    NoCol = Activecell.Column
    Tableau = Split(CelluleDepart, Chr(10))
    For i = 0 To UBound(Tableau)
          Cells(i+1, NoCol).value = Tableau(i)
    Next
    Concernant l'espace, je peux utiliser la fonction "split" ? genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CelluleDepart = ActiveCell.Value
    NoCol = ActiveCell.Column
    Split(Range(NoCol), " " )
    Mais le "espace" entre guillemet ne va pas fonctionner si ?
    NB : Je suis sous excel 2010.



    Edit : Finalement j'ai peut-être trouvé la solution, est-ce que si j'adapte ce code à mon fichier .obj, ça peut le faire ? Cela me réglerait le problème des espaces mais par rapport au retour à la ligne, il faut que j'utilise la commande "other" ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Comme ceci, ça devrait fonctionner.
    Il te resterait à supprimer la colonne A et les lignes d'entête au besoin

    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
        Dim strTemp As String
        Dim MyDataObject As DataObject
     
        Open "C:\dometriangle_test5.obj" For Binary As #1
        strTemp = Space$(LOF(1))
        Get #1, , strTemp
     
        strTemp = Replace(strTemp, " ", vbTab)
     
        Set MyDataObject = New DataObject
        MyDataObject.SetText strTemp
        MyDataObject.PutInClipboard
        Range("A1").PasteSpecial
     
        Close #1
     
        MyDataObject.Clear
        Set MyDataObject = Nothing

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Par défaut
    Bonjour,


    Merci beaucoup, ça fonctionne nickel !

    Finalement ça m'arrange d'avoir que 4 colonnes de données (ce sera plus simple à traiter). C'est cool l'astuce de passer par le presse-papier, je m'en souviendrais

    Un grand merci !

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

Discussions similaires

  1. sed - Insertion d'un fichier dans un autre fichier 2 lignes après un motif
    Par Jiboulingo dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 23/08/2012, 14h46
  2. Actualisation d'un dossier après insertion de fichiers
    Par amirad dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/11/2008, 12h37
  3. Réponses: 1
    Dernier message: 02/10/2008, 03h30
  4. Réponses: 10
    Dernier message: 17/08/2007, 09h38
  5. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 17h16

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