Forums XLPages

Tous les messages (FabriceR)

1 2 »
Re: Import multiple csv
#1
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 22-02-2016 09h25

Bonjour Didier, le forum,

 

Ta solution fonctionne très très bien.

 

Si j'ai bien compris, car je ne suis pas un familier de leur utilisation. Tu gères un tableau de dimensions variables dans VBA dans lequel tu listes les fichiers dans l'ordre croissant et ensuite tu forces l'import des fichiers selon ce tableau.

 

En tout cas merci bcp.

Fabrice

Hors Ligne
Rapport   Haut 

Re: Import multiple csv
#2
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 21-02-2016 09h17

Bonjour myDearFriend,

 

Merci pour la réponse.

 

Et pourtant si, les noms de csv ne sont que des numéros croissant, incrémenté en 1. Ce qui nous donne pour les 12 premiers: 1, 2, 3, 4, 5, 6, 7, 8, 8, 10, 11, 12

 

Et ainsi de suite.

 

Pour ce qui concerne le csv en exemple, je vais en altérer un manuellement et je le posterai plus tard dans la journée.

 

Cordialement,

Hors Ligne
Rapport   Haut 

Import multiple csv
#3
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 20-02-2016 11h23

Bonjour à tous,

 

Je bloque sur une macro dont le but est l'import de multiple csv dans l'onglet d'un classeur. 

 

Principe:

J’ai plusieurs fichiers csv dans un répertoire, ils sont nommés en nombres d'ordre croissant (à partir de 1). Je souhaite que les fichiers soit tous importes dans un onglet de mon classeur les uns à la suite des autres

 

Ma Macro:

Private Sub Import_Data_Click()

Dim wbCSV   As Workbook
Dim wsMstr  As Worksheet:   Set wsMstr = ThisWorkbook.Sheets("Data")
Dim fPath   As String:      fPath = Worksheets("Menu").Cells(4, 1)   'path to CSV files
Dim fCSV    As String
Dim NextCol As Long
Dim FilesInPath As String

'Add a slash at the end if the user forget it
If Right(fPath, 1) <> "" Then
fPath = fPath & ""
End If

'If there are no Excel files in the folder exit the sub
FilesInPath = Dir(fPath & "*.csv")
If FilesInPath = "" Then
MsgBox "No files found"
Exit Sub
End If

If MsgBox("Clear the existing Data sheet before importing?", _
    vbYesNo, "Clear Database?") = vbYes Then
        wsMstr.UsedRange.ClearContents
        NextCol = 1
Else
        NextCol = wsMstr.Cells(6, Columns.Count).End(xlToLeft).Column + 2
End If

Application.ScreenUpdating = False  'speed up macro

fCSV = Dir(fPath & "*.csv")         'start the CSV file listing

    Do While Len(fCSV) > 0
      'open a CSV file
        Set wbCSV = Workbooks.Open(fPath & fCSV)
      'copy data into master sheet and close source file
        ActiveSheet.UsedRange.Copy wsMstr.Cells(3, NextCol)
        wbCSV.Close False
      'read next CSV
        fCSV = Dir
        NextCol = wsMstr.Cells(6, Columns.Count).End(xlToLeft).Column + 1
    Loop

Sheets("Menu").Select

Application.ScreenUpdating = True

MsgBox "Data Import completed"

End Sub

Mon Problème: 

La macro fonctionne parfaitement et fait le travail demandé. Par contre l'ordre d'import des fichiers me pause problème. En effet au-delà de 10 fichiers importés, Excel les traitent dans l'ordre suivant: 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21 ... alors qu'évidement je cherche à avoir 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...

 

Voilà si jamais un des talentueux membres du forum a une piste, je suis preneur ;).

 

Merci d'avance,

Fabrice

Hors Ligne
Rapport   Haut 

Re: Variables
#4
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 07-12-2014 07h09

Bonjour Guy,

 

Merci pour ton aide.

 

Au final j'ai trouvé le problème par moi même en voulant créer le fichier d'exemple!

 

Pour aller chercher la valeur de la variable dans ma feuille, j'utiliser la ligne de code suivante:

 

Variable1 = Val(Worksheets("Feuil1").cells(1,2))

 

Dans ce cas, ma variable était prise par VBA à la valeur de l'entier inférieur.

 

Il suffisait de coder comme ceci pour ne plus avoir de problème:


Variable1 = Worksheets("Feuil1").cells(1,2)

 

Encore merci pour avoir pris le temps d'essayer de comprendre mon problème.

 

Cordialement,

Fabrice

Hors Ligne
Rapport   Haut 

Variables
#5
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 05-12-2014 15h28

Bonjour à tous,

 

Je me permets de soumettre mon problème aux experts de ce forum.

 

J'ai un module VBA qui traite une grande quantité de calcul. Pour effectuer ces calculs j'utilise énormément de variables qui sont liées à une feuille de calcul.

 

Par fainéantise et au vue de leur très grands nombres, je ne les ai pas déclaré et me suis évidement affranchi de la commande Option Explicit en tête de module. De ce fait l'ensemble de mes variables sont par défaut de type Variant.

 

Il est évident qu'on est bien loin de ce qu'il faudrait faire pour optimiser le code et notamment le temps de calcul et l'utilisation de la mémoire.

 

Mon problème est que plusieurs de ces variables contiennent des valeurs décimales mais que VBA les traitent comme des entiers. Il en résulte de très grosses approximations dans le résultat de mes calculs.

 

J'ai alors essayé de déclarer uniquement les variables à valeurs décimale, en utilisant le type Simple, Long ou Decimal mais sans plus de succès Excel et VBA les traitent toujours comme des entiers.

 

Avez vous des suggestions pour contourner ce problème?

 

Merci d'avance pour votre aide.

 

Cordialement,

Fabrice

Hors Ligne
Rapport   Haut 

Re: Enregistrer plusieurs onglets sous un seul fichier pdf
#6
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 29-11-2013 13h38

Salut Myta, le Forum,

 

Effectivement le code fonctionne à merveille et réponds en tout point à mon problème.

 

Merci beaucoup Myta pour ta contribution

Fabrice

Hors Ligne
Rapport   Haut 

Enregistrer plusieurs onglets sous un seul fichier pdf
#7
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 28-11-2013 16h53

Bonjour à tous,

 

J'ai un fichier contenant plusieurs onglets. A l'aide d'un bouton j'aimerai enregistrer 3 de ses onglets sous le même fichier pdf.

 

J'ai écrit le petit bout de code suivant:

Private Sub Generate_Report_Click()

Dim EventsName As String
Dim Rep As String

Application.ScreenUpdating = False
'On Error Resume Next

EventsName = Sheets("Events Settings").Cells(4, 4)
Rep = ThisWorkbook.Path & "\Engineering Report"

Sheets(Array("Report Cover", "Performance Report", "Reliability Report")).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    Rep & EventsName & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False
    
Sheets("Menu").Activate

Application.ScreenUpdating = True

End Sub

Mon problème est qu'un seul des onglets (le premier nommée dans la procédure) est enregistré en pdf.

 

J'ai essayé plusieurs expressions différentes pour remplacer l'ActiveSheet:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

 

Mais en fonction de l'expression choisie, j'ai des erreurs type 1004, 424 ou 438. Seule l'expression ActiveSheet ne plante pas la procédure.

 

Une idée?

Merci d'avance pour vos remarques.

 

Cdlt,

Fabrice

 

Hors Ligne
Rapport   Haut 

Re: Double chrono dans un usf
#8
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 10-11-2012 10h50
Bonjour Jean-Marie, Didier, Le Forum,

Merci pour ta contribution Jean-Marie, pour quelqu'un qui ne maitrise pas trop le VBA tu t'en es plutôt bien sortie.

Je me rends compte en lisant tes explications et la logique de ta programmation quand voulant me simplifier la vie, avec notamment la gestion de 2 modules totalement indépendant l'un de l'autre, que je me suis finalement tiré une balle dans le pied tout seul.

Pareil pour la gestion des boutons, à la base je voulais limiter le nombre de bouton pour l'interface utilisateur, mais au final j'avais des conditions dans tout les sens en fonction de l'étape. Alors que ta solution de gérer plusieurs boutons superposés et de simplement les rendre visible ou non est tellement plus simple.

Pour preuve il suffit de comparer le nombre de ligne de code entre ta version et la mienne!

Le fichier corrigé par tes soins répond parfaitement à mes attentes, le sujet est donc pour moi résolu je ferme le topic.

Merci encore.

A+
Fabrice

Hors Ligne
Rapport   Haut 

Double chrono dans un usf
#9
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 09-11-2012 12h04

Bonjour le Forum,

Je cherche à avoir 2 chrono sur un même userform.

Mon problème est le suivant, si un seul des chronos est utilisé (peu importe lequel) tout fonctionne très bien. Par contre si j'essaie d'utiliser les 2 chronos en même temps, seul le dernier chrono lancé défile à l'écran.

Le premier chrono continue de "tourner" en tache de fond mais ne défile plus à l'écran, il reprendra "sa course" avec les bonnes valeurs dès lors que j'aurai stoppé le 2ème chrono.

Je vous joins un petit fichier exemple.

Merci d'avance pour vos contributions.

Fabrice

Pièce jointe:
xlsm Classeur1.xlsm   [ Taille: 20.39 Ko - Téléchargements: 544 ]
Hors Ligne
Rapport   Haut 

Re: Créer un compte à rebours via des formules
#10
Débutant XLPages

Inscription: 25/10/2011

Messages: 12

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007, 2010
Posté le : 13-08-2012 15h06
Bonjour Jean-Marie, Didier, Le Forum,

En PJ un permier brouillon que je viens de "bricoler". Alors évidemment le calcul est beaucoup trop rapide mais je n'ai pas encore trouver de solution pour le synchroniser toute les secondes mais le résultat approche ce que j'aimerai.

Par contre je confirme qu'il est impossible d'intéragir avec la feuille quand le calcul se déroule ce qui est problématique pour l'utilisation que je veux en faire. Je pense que je vais renoncer mais merci à Jean-Marie pour m'avoir guider vers le calcul itératif.

Fabrice
Pièce jointe:
xls Test Compte à Rebours via formule.xls   [ Taille: 20.00 Ko - Téléchargements: 1224 ]
Hors Ligne
Rapport   Haut 

1 2 »