Langage VBA soucis

Fermé
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009 - 9 juin 2009 à 10:05
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 - 11 juin 2009 à 23:30
Bonjour j'ai un petit soucis dans le langage visual basic editor en fait jai un projet d'automatisation de devis j'ai plusieurs devis dans un classeur j'ai mis en place un boutton valider dans chaque feuille devis j'aimerai avec ce boutton mettre une procédure qui enregistre ce devis dans un fichier special que j'ai créer "DEVIS 2009"
alors jai mis

Sub enregistredevis()
worsheets("Devis Cegelec").Select


Application.WindowState = xlMinimized
End Sub
la quand jessaye la maccro il me mette erreur? donc je ne comprend pas? Pourriez vous m'aider svp?
Coridialement
Micka
A voir également:

18 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
9 juin 2009 à 10:42
Bonjour,

commence par écrire Worksheets au lieu de worsheets, et dis-nous si ça fonctionne.

Cordialement.
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 10:50
Rebonjour c'est bon c'etait une erreur de saisie worksheets.select c'est pour selectionner, pour copier et coller dans le fichier devis 2009? vous savez quoi mettre?
Merci par avance
Micka
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
9 juin 2009 à 11:03
Donc si je comprends bien, tu as plusieurs devis dans un fichier (que l'on va nommer par exemple "toto") et tu voudrais mettre les devis dans un fichier que tu as nommé "Devis 2009". Chaque devis est dans une feuille c'est ça ?

Donc si c'est ça, tu peux mettre comme code pour copier ton "Devis Cegelec" :

Sub enregistredevis()
worsheets("Devis Cegelec").Select
Cells.Select 'sélectionne toute la feuille
Selection.Copy 'copie de la feuille'
Application.Workbook("DEVIS 2009").Open 'il te faut ouvrir le fichier DEVIS 2009, sinon la macro ne           'fonctionnera pas
Application.Workbook("DEVIS 2009").Sheets("Feuil1").Select 'sélection de la destination du devis
ActiveSheet.Paste 'la copie est collée dans la feuille active, ici Feuil1 qui a été sélectionnée précédemment

Application.WindowState = xlMinimized
End Sub 


Voilà, le code est encore à améliorer, mais voici une bonne base je pense.

Cordialement.
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 11:26
je vous remercie beaucoup Monsieur, mais en fait le but n'est pas de copier la feuille dans un classeur devis mais carrément dans un fichier et de prendre comme titre la cellule numéros de devis? vous voyez ou je veux en venir?
Je vous remercie par avance
Micka
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
9 juin 2009 à 11:49
Bonjour,
Dim valeur As String
valeur = [B1] 'B1 = cellule ou figure le n° du devis
Sheets("Devis Cegelec").Select
Sheets("Devis Cegelec").Copy
ChDir "C:\inscrire ici le chemin de la sauvegarde"
ActiveWorkbook.SaveAs Filename:= _
"C:\inscrire ici le chemin de la sauvegarde" & valeur & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close

Ceci n'est qu'une base à améliorer (test si le fichier existe déjà etc...)
--
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 juin 2009 à 11:55
Bonjour,

Sub enregistredevis()
Dim sh

Application.DisplayAlerts = False

For Each sh In Worksheets
   If sh.Name <> "Devis Cegelec" Then
      sh.delete
   End If
Next sh

ThisWorkbook.SaveAs("Devis 2009.xls")

Application.DisplayAlerts = True

End Sub


;o)
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 13:39
Rebonjour,
Application.workbook("devis2009).open c'est pas ouvir un nouveau classeur?? non?
Je vous remercie par avance
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 13:50
bonjour monsieur,
"C:\inscrire ici le chemin de la sauvegarde" & valeur & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close

Chemin de la sauvegarde " valeur.xls" c'est pas un nouveau classeur que vous demandez d'ouvir? en fait c'est un fichier que j'aimerai ouvrir? je peux le faire?
Je vous remercie
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 juin 2009 à 14:10
Etrange ... Ôo ...

On répond à ta question pour sauvegarder un classeur et maintenant tu veux en ouvrir un ???

As-tu tester le code ? Sais-tu exactement ce que tu veux faire ? As-tu pris la peine d'écrire le cheminement des opérations à réaliser ? Es-tu sûr de ne pas avoir mis la charrue avant les boeufs ? etc etc ...

:o|
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
9 juin 2009 à 14:16
Vous voulez :
1- ouvrir un classeur existant
2- copier votre feuille devis cegelec dans ce classeur
3- renommer la feuille ainsi copiée par le numéro de devis
4- enregistrer le tout
est ce ça?
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 14:25
rebonjour,
Oui c ca sauf que classeur existant est à remplacer par fichier existant... c possible?
Je vous remercie
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 14:30
Rebonjour
Oui je sais exactement car j'ai noté sur une feuille il me manque comment le transoformer en VBA:
1- selectionner la feuille devis
2- Copier cette feuille
3- Coller dans un fichier mais non pas un classeur " FICHIER DEVIS 2009"
4- donner un titre à la feuille qui sera une cellule de la feuille (N°devis)
5- remettre les cellule à 0
Je vous envois le fichier dans lequel il y a les devis: http://www.cijoint.fr/cjlink.php?file=cj200906/cijWiXyrZ2.xls
Je vous remercie par avance
Micka
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
9 juin 2009 à 14:53
1- ouvrir le fichier "devis 2009" :
ChDir "C:\chemin d'accès sans le nom du fichier genre : C:\Documents and Settings\piloupilou\Bureau"
Workbooks.Open Filename:= _
"C:\Documents and Settings\piloupilou\Bureau\nom du fichier devis 2009.xls"

2- copier-coller de la feuille devis cegelec :
Windows("nom du fichier d'origine.xls").Activate
Sheets("Devis CEGELEC").Select
Sheets("Devis CEGELEC").Copy Before:=Workbooks("nom du fichier devis 2009.xls").Sheets(1)

3- changement du nom de la feuille :
Sheets("Devis CEGELEC").Select
Sheets("Devis CEGELEC").Name = [A17]

4- sauvegarde et fermeture :
ActiveWorkbook.Save
ActiveWindow.Close

Quoi d'autre???
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
9 juin 2009 à 14:35
Pourriez vous me donner le chemin d'accès à votre fichier de sauvegarde ainsi que son nom?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 juin 2009 à 14:36
3- Coller dans un fichier mais non pas un classeur " FICHIER DEVIS 2009"

Quel type de fichier ?
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 14:56
un dossier en fait...
je vous remercie desolé si je ne suis pas assez claire
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
9 juin 2009 à 14:57
tuz alors j'm'a gourré!!!!
Dans un dossier tu veux pleins pleins tout plein de petit classeurs excel nommé comme tes devis?
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
9 juin 2009 à 15:03
Non en fait le but principal est d'enregistrer mes devis dans un dossier "DEVIS 2009" parceque si on le fé manuellement avec enregistrer sous ca m'enregistre tous le classeur vous comprenez? la je veux qu'enregistrer la feuille dans ce dossier en prenant comme titre le numero de devis(la cellule)
Je vous montre mon fichier avec les devis...
http://www.cijoint.fr/cjlink.php?file=cj200906/cijWiXyrZ2.xls
Je vous remercie
Micka 31
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
9 juin 2009 à 15:07
cf mon post 5 que je te remets....... :
Dim valeur As String
valeur = [B1] 'B1 = cellule ou figure le n° du devis
Sheets("Devis Cegelec").Select
Sheets("Devis Cegelec").Copy
ChDir "C:\inscrire ici le chemin du dossier exemple : C:\DEVIS 2009"
ActiveWorkbook.SaveAs Filename:= _
"C:\inscrire ici le chemin du dossier\ exemple : C:\DEVIS 2009\" & valeur & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 juin 2009 à 15:04
Pour créer un répertoire en VB et VBA :

MkDir("chemin et nom du répertoire à créer")

Exemple :

Pour créer un répertoire dans le répertoire C:\temp

MkDir("C:\temp\dossier")

0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
10 juin 2009 à 08:29
Bonjour escusez moi de vous deranger comment on fait pour ouvrir un dossier qui se trouve dans le bureau avec le langage visual basic?
Je vous remercie par avance
Micka31
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
11 juin 2009 à 18:26
bonjour monsieur,
ChDir "C:\Documents and settings\xxxxxxxx\bureau\DEVIS 2009"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and settings\xxxxxxxx\bureau\DEVIS 2009\" & valeur & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close
end sub
Je comprend pas ce que vous voulez faire par cette procédure?
Je vous remercie par avance
0
micka31 Messages postés 47 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 12 juin 2009
11 juin 2009 à 20:49
Monsieur, vous aviez recu mes derniers messages?
Je vous remercie par avance
Micka
0
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
11 juin 2009 à 23:30
Bonjour micka31,
Et quelle surprise de retrouver un nouveau poste avec toujours le même problème.
Le plus étrange est que votre classeur mis à disposition au poste 18 ne renferme même pas une partie du code que vous a si bien proposé [pijaku], [Polux31], [Chossette9] ... !
Il est où le problème ?
0