Vba, excel 2013 [Résolu/Fermé]

Signaler
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016
-
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016
-
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

Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020
1 361
Bonjour,

sans avoir a recommencé pour l'enregistreur
Pourquoi devez-vous recommencer ?? Normalement les formules ne s'envolent pas
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016
>
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

Si tu pense qu'une autre technologie serait plus adaptés, n'hésite pas à me le signaler
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020
1 361 >
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

Re,

Quel excel avez-vous car vous avez mis un fichier .ods au lieu de ....
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

Excel 2013, désolé le fichier a du faire un tour pas open office...
le voila en .xlsm https://www.cjoint.com/c/EHtiFQIxepu
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020
1 361 >
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

Re,

un tour pas open office... Non, chez moi c'est pareil, par defaut c'est .ods
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016
>
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020

Re,
Je ne comprend pas désolé. Du coup est ce possible ou nom de récupérer ma feuille de traitement sous forme de macro?
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020
1 361
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
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

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!
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

ci-joint capture et fichier CSV: https://www.cjoint.com/c/EHtnlXAzDQu
même résultat en utilisant pendule_01
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020
1 361 >
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

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?
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016
>
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020

Je ne comprend vraiment pas pourquoi cela changerai lorsque je l'utilise.
Ci-joint la capture de l'ensemble de mes actions: https://www.cjoint.com/c/EHtn4AdEHgu
Merci pour le temps consacré.
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020
1 361 >
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016

Re,

Erreur 1004: changez dans le code VBA le chemin pour enregistrer le fichier

Quand vous avez les #VALEUR, faites une evaluation de la formule en pas a pas detaille pour voir les valeurs des cellules de la formule.

Je pense avoir trouve le chmilblik, vous devez avoir une "," en separateur de decimale

Je viens de verifier et effectivement c'est un probleme de separateur de decimale qui n'apparait pas avec le mode de recuperation de Maurice (sauf erreur de ma part).
Messages postés
27
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
16 septembre 2016
>
Messages postés
15349
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 septembre 2020

Chemin changé, et c'était bien un probléme de séparateur décimal =).
J'ai un peu modifier creation_classeur qui prenait la taille de la feuille1 et non 2,

Mais sinon tout étais parfait.
Merci du temps que vous m'avez accordé
Je vais essayé de me débrouillé tout seul pour le reste
Bonne fin de journée

Nicolas
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
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