Inputbox+date numérique+importer fichier

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
A voir également:

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
0
Jbouille
 
Ok ça marche merci beaucoup!!!!
0