Inputbox+date numérique+importer fichier
jbouille
-
Jbouille -
Jbouille -
Bonjour,
J'utilise une inputbox pour importer fichier sous excel. J'utilise la date (variable) inclu dans le nom du fichier pour permettre à l'utilisateur de différencier les fichiers qu'il veut importer (format de la date JJMMAAAA). Je réutilise cette même date ensuite pour des calculs. Problem: Tout fonctionne correctement sauf quand la date n'est pas un une journée à 2 chiffre.
Je m'explique: nom du fichier: 31052008C2C_PNS.CSV = aucun problem avec la macro
nom du fichier 05062008C2C_PNS.CSV : plantage. Il semblerait que VBA ne considère pas le 0. Si je tappe 5062008 dans mon inputbox ça marche par contre, mais fou en l'ai mes calcul après.
Comment faire???
Ci dessous la macro pour mieux comprendre.
On Error GoTo ErrorHandler
Dim DateSaisie As Long
DateSaisie = InputBox("PNS FILE : Enter Date using the following format : DDMMYYYY")
Dim LaDate As Long
LaDate = DateSerial(CInt(Right(DateSaisie, 4)), CInt(Mid(DateSaisie, 3, 2)), _
CInt(Left(DateSaisie, 2)))
Sheets("C2C_PNS").Select
Columns("A:W").Select
Selection.ClearContents
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;E:\C2C Tool\Version Clef\" _
& DateSaisie & "C2C_PNS.csv", Destination _
:=Range("A1"))
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1)
.Refresh BackgroundQuery:=False
End With
Macro ou je rétuilise la date utilisé en variable dans l'input box pour un calcul
ActiveCell.FormulaR1C1 = _
"=IF(OR(LEFT(RC[-8],3)=""411"",LEFT(RC[-8],3)=""416"")," & LaDate & " - RC[-13],"""")"
Merci beaucoup pour votre aide
J'utilise une inputbox pour importer fichier sous excel. J'utilise la date (variable) inclu dans le nom du fichier pour permettre à l'utilisateur de différencier les fichiers qu'il veut importer (format de la date JJMMAAAA). Je réutilise cette même date ensuite pour des calculs. Problem: Tout fonctionne correctement sauf quand la date n'est pas un une journée à 2 chiffre.
Je m'explique: nom du fichier: 31052008C2C_PNS.CSV = aucun problem avec la macro
nom du fichier 05062008C2C_PNS.CSV : plantage. Il semblerait que VBA ne considère pas le 0. Si je tappe 5062008 dans mon inputbox ça marche par contre, mais fou en l'ai mes calcul après.
Comment faire???
Ci dessous la macro pour mieux comprendre.
On Error GoTo ErrorHandler
Dim DateSaisie As Long
DateSaisie = InputBox("PNS FILE : Enter Date using the following format : DDMMYYYY")
Dim LaDate As Long
LaDate = DateSerial(CInt(Right(DateSaisie, 4)), CInt(Mid(DateSaisie, 3, 2)), _
CInt(Left(DateSaisie, 2)))
Sheets("C2C_PNS").Select
Columns("A:W").Select
Selection.ClearContents
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;E:\C2C Tool\Version Clef\" _
& DateSaisie & "C2C_PNS.csv", Destination _
:=Range("A1"))
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1)
.Refresh BackgroundQuery:=False
End With
Macro ou je rétuilise la date utilisé en variable dans l'input box pour un calcul
ActiveCell.FormulaR1C1 = _
"=IF(OR(LEFT(RC[-8],3)=""411"",LEFT(RC[-8],3)=""416"")," & LaDate & " - RC[-13],"""")"
Merci beaucoup pour votre aide
A voir également:
- Inputbox+date numérique+importer fichier
- Fichier .dat - Guide
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
Je pense qu'il faut déclarer datesaisie comme un string, pas comme un long :
Dim DateSaisie As string
Dim DateSaisie As string
Jbouille
Ok ça marche merci beaucoup!!!!