Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : vba excel : chdir [ Archives Visual Basic / VBA ] (emlyd2207)

jeudi 29 décembre 2005 à 16:36:20 | vba excel : chdir

emlyd2207

je voudrais créer 2 boites de dialogues demandant de saisir l'année et l'autre, le mois, et reprendre ces 2 informations pour ouvrir automatiquement un fichier dans la directory de l'année et du mois concerné.
Ex : on saisit "2005" et "12" et la macro va ouvrir dans les directories   :  .../2005/12.

Ci-dessous mon code (attention, je suis débutant !!!). La création des boites de dialogues marche mais c'est le chemin d'ouverture qui ne marche pas. Quelqu'un peut m'aider ? Merci d'avance.


Sub ImportStocks()
'
' ImportStocks Macro
' Importation et mise en forme d'un fichier txt des stocks de JDE

Dim VANNEE As String
'variable correspondant à l'année qui est saisie ds la boite de dialogue
Dim VMOIS As String
'variable correspondant au mois qui est saisi ds la boite de dialogue

VANNEE = InputBox(prompt:="Saisir l'année concernant l'importation des stocks", Title:="IMPORTATION DES STOCKS")
'boite de dialogue pour l'année
VMOIS = InputBox(prompt:="Saisir le mois concernant l'importation des stocks", Title:="IMPORTATION DES STOCKS")
'boite de dialogue pour le mois

ChDir "U:\Compta\Renoux\CptaIndus\VANNEE\VMOIS"

Workbooks.OpenText FileName:= _
  "U:\Compta\Renoux\CptaIndus\VANNEE\VMOIS\stocks.txt", Origin:=xlWindows, _
        StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(28 _
        , 1), Array(35, 1), Array(39, 1), Array(46, 1), Array(52, 1), Array(79, 1), Array(90, 1), _
        Array(120, 1), Array(140, 1), Array(143, 1), Array(160, 1))
       
End Sub


jeudi 29 décembre 2005 à 16:39:46 | Re : vba excel : chdir

69chris

Réponse acceptée !
Salut,

Et bien rien de bien grave.

Dans cette chaine : "U:\Compta\Renoux\CptaIndus\VANNEE\VMOIS\stocks.txt", VANNEE et VMOIS sont des chaines de caractères et ne désigne en aucun cas les variables. Il faut donc définir le chemin comme :
"U:\Compta\Renoux\CptaIndus\" & VANNEE & "\" & VMOIS & "\stocks.txt"


Chris


N'oubliez pas de cloturer votre post.

jeudi 29 décembre 2005 à 17:10:31 | Re : vba excel : chdir

chapata

Hi,

69Chris à raison, toutes tes variables VBA ne sont pas des chaines de caractères ...
Il faut absolument les différenciés dans une chaine par


Ceci est ma chaine de caractère avec " & MaVariable & " sinon elle ne sera pas traitée en tant que variable.

Bon courage ...

ChaPaTa


jeudi 29 décembre 2005 à 17:25:44 | Re : vba excel : chdir

emlyd2207

merci à chris et à chapata, ça marche maintenant très bien.

jeudi 29 décembre 2005 à 17:29:07 | Re : vba excel : chdir

ScSami

Membre Club
Note que les commentaires, généralement, se mettent plutôt sur les lignes de codes que dessous même si, je te l'accorde, pour la lecture (surtout pour les débutants) c'est plus facile. Enfin, tu verras bien avec l'expérience (quand la nature de tes commentaires changera...) !
De plus, j'ai remarqué que tu n'employais pas d'indentations !!! Tes progs seront vite foutraques si tu ne prends pas rapidement cette habitude d'indenter ton code (pour info, "indenter" signifie "mettre des espaces devant ton code pour indiquer sa profondeur..."...).

Sinon, pour ton problème, en effet, ce n'est rien de grave. Je te conseille cependant de créer une variable spécialement pour stocker le chemin d'accès.

Dim varChemin As String
...
varChemin =
"U:\Compta\Renoux\CptaIndus\" & VANNEE & "\" & VMOIS & "\stocks.txt"

Mais je te conseillerais également de tester les données entrées afin d'éviter au maximum les erreurs (car ta technique est bien trop directe!!!) et, dans la foulée, mettre en place une gestion des erreurs...
C'est d'ailleurs ce qui est chiant avec les macros qui jouent avec les fichiers... c'est qu'il faut être très prudent...

Voici donc comment je ferais ton code :

'ImportStocks Macro
'Importation et mise en forme d'un fichier txt des stocks de JDE

Sub ImportStocks()
 
 'Déclaration des variables locales :
 'Variable correspondant à l'année qui est saisie ds la boite de dialogue

 Dim varAnnee As String
 'Variable correspondant au mois qui est saisi ds la boite de dialogue
 
Dim varMois As String
 'Variable stockant temporairement le chemin d'accès du fichier
 Dim varChemin As String
 'Variable du texte du message d'erreur
 Dim varMsgErreur As String
 
 'Activation du gestionnaire d'erreur
 On Error Goto GestionErreurs
 
 'Boite de dialogue pour saisir l'année
 
varAnnee = InputBox(prompt:="Saisir l'année concernant l'importation des stocks", Title:="IMPORTATION DES STOCKS : ANNÉE")
 
 'Boite de dialogue pour saisir le mois
 
varMois = InputBox(prompt:="Saisir le mois concernant l'importation des stocks", Title:="IMPORTATION DES STOCKS : MOIS")
 
 varChemin =
"U:\Compta\Renoux\CptaIndus\" & VANNEE & "\" & VMOIS & "\"
 ChDir varChemin
 Workbooks.OpenText FileName:= _
 
varChemin & "stocks.txt", Origin:=xlWindows, _
        StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(28 _
        , 1), Array(35, 1), Array(39, 1), Array(46, 1), Array(52, 1), Array(79, 1), Array(90, 1), _
        Array(120, 1), Array(140, 1), Array(143, 1), Array(160, 1))
 
 'Désactivation du gestionnaire d'erreurs
 On Error Goto 0
 
Exit Sub
GestionErreurs:
 'Gestionnaire d'erreurs
 varMsgErreur =
"L'erreur N°" & err.Number & " est survenue." & vbNewLine
 varMsgErreur = varMsgErreur & "Description de l'erreur :" & vbNewLine
 varMsgErreur = varMsgErreur & err.Description & vbNewLine & vbNewLine
 varMsgErreur = varMsgErreur & "Veuillez verrifier les données entrées " & vbNewLine
 varMsgErreur = varMsgErreur & "et recommancer." & vbNewLine
 'varMsgErreur =
varMsgErreur & "" & vbNewLine
 MsgBox(varMsgErreur, vbOKOnly & vbCritical, "Erreur")
End Sub


Code à tester par tes soins!

Enjoy

( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )

jeudi 29 décembre 2005 à 17:36:58 | Re : vba excel : chdir

emlyd2207

merci ScSami, je n'en demandais pas tant mais je prends toutes ces recommandations avec beaucoup d'intérêt. Je viens de finir ma formation vba débutant il y a à peine une semaine et je sens que je vais progressé très rapidement avec les membres de ce site. C'est très enthousiasmant de voir la réactivité et la convivialité des intervenants.
A bientôt très certainement

jeudi 29 décembre 2005 à 17:40:07 | Re : vba excel : chdir

ScSami

Membre Club
Heu... Oui, j'oubliais...

 'Boite de dialogue pour saisir l'année
 
varAnnee = InputBox(prompt:="Saisir l'année concernant l'importation des stocks", Title:="IMPORTATION DES STOCKS : ANNÉE")
 'Si le texte ne comporte pas exactement 4 caractères,
 'Ou si l'expression n'est pas numérique,
 'On génère une erreur personnalisée.

 If Len(varAnnee) <> 4 Or
IsNumeric(varAnnee) = False Then Err.Raise vbObjectError + 513, "MyProj.MyObject", "Le format entrée de l'année est invalide."
 If  Then
 
 'Boite de dialogue pour saisir le mois
 
varMois = InputBox(prompt:="Saisir le mois concernant l'importation des stocks", Title:="IMPORTATION DES STOCKS : MOIS")
 'Idem mais pour 2 caractères seulement!
 If Len(varAnnee) <> 2
Or IsNumeric(varAnnee) = False Then Err.Raise vbObjectError + 513, "MyProj.MyObject", "Le format entrée du mois est invalide."


Mais à tester quand même (parce que fait de tête)!

Enjoy

( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )



Cette discussion est classé dans : array, mois, importation, année, stocks


Répondre à ce message

Sujets en rapport avec ce message

date [ par wareg ] bonjourqu'elle est le code qui permet de calculer la différence entre deux dates au format jour, mois et année, sachant qu'il y a des text1, 2 et 3 po date [ par wareg ] dans un programme j'ai besoin de convertir des jours en jours, mois et année. Comment faire pour exécuter ce miracle.Sinon y a t'il possibilité de fai Do Loop pour avoir jour mois année [ par Testuo ] 'lut, suis nouveau, commence juste la programmation. Sur Vb il met demandé de vérifier la validité de l'entrée année, mois et jour.Seulement pour le j synthaxe de concaténation sous access [ par Nine30 ] Bonjour, je débute avec Access alors je ne sais pas trop comment faire. J'ai 2 contrôles indépendants dans un formulaire: Mois et Année. Je cherche à Premier jour du mois [ par JoVB ] Hello, pour mon programme j'aurais besoin de savoir quel est le premier jour du mois en conaissanr l'année et (bien sur) le mois !Par exemple si je sa conversion date [ par elbrahimo ] salut à tous,j'ai une question toute simple, je récupére une date du typeMois/jour/année existe il une fonction qui convertit cette date en Jour/mois Récupéré le mois avec année et numéro de semaine [ par XGuarden ] Bonjour, je cherche un moyen de récupéré le nom d'un mois à partir de l'année et du numéro de semaine(en visual basic 6). En respectant la regle des Tester une date d'aprés le mois + année [ par MMIC ] BonjourJe voudrais vérifier si le mois d'une date + l'année existent déjà dans la base , exemple :j'ai saisi le 22/04/2005 dans un Dtpicker, et je veu Problème de récupération d'une partie de date [ par Marnilla ] Salut à tous,J'ai un soucis dans un de mes codes , je mets dans une variable la date du jour et je veux récupérer séparément l'année et le mois , l'an Récupérer le mois et l'année d'une cellule [ par boudafc ] Hello ! Voilà, je vous expose mon problème, je voudrais en fait récupérer juste le mois et l'année d'une cellule contenant une date (la cellule est


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,045 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.