Vba, excel 2013

Résolu
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. Bonjour,

    sans avoir a recommencé pour l'enregistreur
    Pourquoi devez-vous recommencer ?? Normalement les formules ne s'envolent pas
    0
    1. 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. @zanzibBonjour,

      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. @f894009fichier .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. @zanzibSi tu pense qu'une autre technologie serait plus adaptés, n'hésite pas à me le signaler
      0
    5. @zanzibRe,

      Quel excel avez-vous car vous avez mis un fichier .ods au lieu de ....
      0
  2. 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
    1. 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. 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. 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. @zanzibRe,

        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. @zanzibRe,

        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
    2. 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
      1. 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