Vba, excel 2013

Résolu
zanzib Messages postés 28 Statut Membre -  
zanzib Messages postés 28 Statut Membre -
Bonjour,
Voila mon probléme:
Je dispose d'une feuille (brut) dans laquelle je récupère des données brut depuis un fichier .csv et d'une feuille (traitement) traitant ces données (calcul de coordonnées dans le temps, etc...).
J'aimerai savoir si il est possible d'enregistré toute les formules de la feuille traitement sous forme de macro, sans avoir a recommencé pour l'enregistreur (prêt de deux heures d'algo à taper et étiré pour obtenir la feuille traitement).
Merci d'avance
Cordialement

5 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    sans avoir a recommencé pour l'enregistreur
    Pourquoi devez-vous recommencer ?? Normalement les formules ne s'envolent pas
    0
    1. zanzib Messages postés 28 Statut Membre
       
      Bonjour,
      Lorsque j'ai produit la feuille "traitement", je ne connaissais pas l'enregistreur. J'aimerai avoir cette feuille sous forme de macro, pour pouvoir l'appliquer sur n'importe quelle feuille "brut". Bien sûr les formules sont toujours présente. J'espère avoir été clair sur mon besoin.
      Merci
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > zanzib Messages postés 28 Statut Membre
       
      Bonjour,

      Pour repondre a votre besoin, il faut un fichier csv et votre feuille traitement avec les formules pour voir comment faire
      Pour transmettre un fichier,
      il faut passer par un site de pièce jointe tel que cjoint.com

      Allez sur ce site : https://www.cjoint.com/
      Clic sur parcourir,
      Cherche ton fichier,
      clic sur ouvrir,
      Clic sur "Créer le lien cjoint",
      Copier le lien,
      Revenir ici le coller dans une réponse...
      0
    3. zanzib Messages postés 28 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      fichier .csv: https://www.cjoint.com/c/EHth73MTDku (il pourra être de taille variable)
      traitement: https://www.cjoint.com/c/EHtibsrYPQu (ce trouve en feuille2)
      Mon but serait d'avoir un fichier .xls avec une interface pour importer et appliqué le traitement dans un nouveau classeur, et ensuite mais ça je verrai par moi même, appliquer un traitement spécifique sur certain point sélectionner par l'utilisateur.
      (j'ai commencé le vba seulement hier)
      Merci pour tous
      0
    4. zanzib Messages postés 28 Statut Membre > zanzib Messages postés 28 Statut Membre
       
      Si tu pense qu'une autre technologie serait plus adaptés, n'hésite pas à me le signaler
      0
    5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > zanzib Messages postés 28 Statut Membre
       
      Re,

      Quel excel avez-vous car vous avez mis un fichier .ods au lieu de ....
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour Maurice,

    Il y a plus simple pour importer un fichier CSV

    Zanzib: fichier pour choix du fichier import fichier CSV et creation classeur avec les infos feuille2 lignes et colonnes suivant format fichier CSV. Pour les points avec traitement particulier, faut voir car peut-etre pas si simple que ca a programmer

    https://www.cjoint.com/c/EHtjvxh3Caf
    0
  3. zanzib Messages postés 28 Statut Membre
     
    Excusez moi du temps de réponse, un peu de mal à comprendre vos travaux.

    f894009: Ton importation marche un peu prêt bien, excepté pour la feuille2 qui prend #VALEUR! dans toutes les cases.
    Création classeur a l'air de fonctionner aussi mais me renvoie l'erreur 1004 avec le deboggeur qui poite sur: ActiveWorkbook.SaveAs Filename:=Chemin & Nom, FileFormat _
    :=xlOpenXMLWorkbook, CreateBackup:=False
    je suppose que cela vient du chemin.
    Par contre il m'ouvre bien un classeur avec le résultat du traitement qui du coup ce retrouve être que des #VALEUR!

    Maurice: marche sans problème juste le séparateur qui n'étais pas le bon.

    Pour les points particuliers, ca sera de calculé les angles entre 3 points voulu, et extraire des graphiques en fonction du temps

    En tous cas merci du temps que vous m'accordez!
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      qui prend #VALEUR! dans toutes les cases. Avec quel fichier avez-vous ces resultats, car dans ce que je vous ai mis a dispo ca ne fait pas ca !!!!!!
      0
    2. zanzib Messages postés 28 Statut Membre
       
      En utilisant le fichier traitement.xlsm que vous m'avais fournit.
      Les formules sont bien présente dans les cases.
      Capture d'écran ci-joint: https://www.cjoint.com/c/EHtmiTD5E7u
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > zanzib Messages postés 28 Statut Membre
       
      Re,

      Montrez la feuille1 et le fichier CSV que vous avez utilise

      renvoie l'erreur 1004 Adaptez le chemin et le nom du fichier pour enregistrement du fichier


      juste le séparateur qui n'étais pas le bon Desole mais Maurice a pris le bon separateur vu le fichier csv que vous avez mis a dispo
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > zanzib Messages postés 28 Statut Membre
       
      Re,

      https://www.cjoint.com/c/EHtnDeJw5Yf fait avec "mon" fichier et fichier csv gapennes pas de probleme, une feuille Maurice avec separateur "," d'origine sans probleme d'import !!!!!!!!!! Qu'est ce qui vous a fait dire que le separateur n'etait pas le bon, y en a pas d'autre?
      0
  4. Maurice
     
    Bonjour

    Voila un macro pour exporter la feulle2
    Sub Macro2()
    Application.ScreenUpdating = False
    Chemin = ActiveWorkbook.Path
        Sheets(Feuil2.Name).Copy
        Cells.Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues
        Range("A1").Select
        Application.CutCopyMode = False
        ActiveWorkbook.SaveAs Filename:=Chemin & "\TestPendule.xlsx"
        ActiveWorkbook.Close
    End Sub
    

    A+
    Maurice
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Maurice
     
    Bonjour
    voila deja une macro pour importer les csv dans la feuil1
    pour les function tu doit avoir des probleme a voir
    Private Sub ChoixFicCsv()
    Dim dossier As FileDialog
    ChoixChemin = ActiveWorkbook.Path & Application.PathSeparator
       Set dossier = Application.FileDialog(msoFileDialogFilePicker)
          With dossier
             .AllowMultiSelect = False
             .InitialFileName = ChoixChemin
             .Title = "Choix d'un fichier Pendule"
             .Filters.Clear
             .Filters.Add "Fichier Csv ", "*.csv", 1
                If .Show = -1 Then
                   Chemin = .SelectedItems(1)
                   LireTxt Chemin
                End If
          End With
       Set dossier = Nothing
    End Sub
    
    Sub LireTxt(NomFichier)
    Dim Ar() As String
       With Application
          .ScreenUpdating = False
          .EnableEvents = False
          .Calculation = xlManual
       End With
    Feuil1.Select
    Cells.Select
    Selection.ClearContents
    'Sep = vbTab
    Sep = ","
    Lig = 1
    ' -----------------------------------------
        Open NomFichier For Input As #1
            Do While Not EOF(1)
                Line Input #1, Chaine
                   Ar = Split(Chaine, Sep)
                   Col = 1
                      For X = LBound(Ar) To UBound(Ar)
                         Cells(Lig, Col) = Ar(X)
                         Col = Col + 1
                      Next
                Lig = Lig + 1
            Loop
        Close #1
    ' -----------------------------------------
       With Application
          .ScreenUpdating = True
          .Calculation = xlCalculationAutomatic
          .EnableEvents = True
          .CutCopyMode = False
          .Goto [A1], True
       End With
    End Sub
    

    A+
    Maurice
    -1