Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1557 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  enregistrement VBA et formation de catégories

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

enregistrement VBA et formation de catégories

n°2183660
petite_bul​le12
Posté le 02-04-2013 à 17:41:00  profilanswer
 

salut à tous !  :)  
 
j'ai deux petits souci avec VBA donc merci d'avance à ceux qui sauront y répondre  :)  
 
1) Je n'arrive pas à coder l'enregistrement d'un classeur excel. Je m'explique. Jai un IHM (nom : userforme) dans laquelle il y a une zone de texte (TbxTexte), un bouton enregistrer (BtnEnregistrer) et la date du jour (Label1). J'aimerais que quand je clique sur le bouton "enregistrer" le dossier excel s'enregistre avec le texte écrit dans TbxTexte et la date. J'ai bien essayé la fonction ThisWorkBook.path mais cela ne marche pas malgré les nombreux codage utilisés. Auriez vous une/des idées ?
 
2) Mon dossier excel comporte une liste de courses dans laquelle se trouve plusieurs catégories (viandes, produits ménagés...) et j'aimerais pouvoir faire apparaitre les produits appartenant à ces catégories. Au départ j'ai opté pour un bouton mais sans grand succés... Comment faire apparaitre/disparaitre les produits quand la catégorie est (ou non) sélectionnée ?
 
merci d'avance à ceux qui pourront m'aider et à bientot  :hello:

mood
Publicité
Posté le 02-04-2013 à 17:41:00  profilanswer
 

n°2183804
vave
Nice to meet me
Posté le 03-04-2013 à 14:26:25  profilanswer
 

Bonjour,
 
1) Pour enregistrer, tu peux faire comme ça :

Code :
  1. Private Sub Enregistrer_Click()
  2. Dim NomFichier As String
  3. NomFichier = TbxTexte & "_" & Format(Now(), "YYYYMMDD" )
  4. ActiveWorkbook.SaveAs "C:\User\dossier\" & NomFichier, FileFormat:= _
  5.                           xlOpenXMLWorkbook, CreateBackup:=False
  6. End Sub


Ca te l'enregistrera en xlsx. Si tu le veux en xlsxm, remplace xlOpenXMLWorkbook par xlOpenXMLWorkbookMacroEnabled.
 
2) Il faut que tu te serves de l’événement change de la liste où sont les catégories :

Code :
  1. Private Sub Catégories_Change()
  2. MsgBox Catégories.Value
  3. End Sub


Dans cet événement, tu testes pour savoir quel élément est sélectionné (catégorie.value) et tu alimentes tes produits en fonction de ça.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2183905
petite_bul​le12
Posté le 03-04-2013 à 20:28:30  profilanswer
 

bonjour,
 
merci beaucoup je vais dès que possible essayé le code d'enregistrement mais est il possible d'utiliser la fonction .path pour simplifier l'écriture comme cela ?
Code :
Private Sub Enregistrer_Click()
Dim NomFichier As String
NomFichier = TbxTexte & "_" & Format(Now(), "YYYYMMDD" )
ActiveWorkbook.Save = thisWorkbook.path
End Sub
 
pour le second code, je ne comprend pas pourquoi tu utilises une MsgBox ? car j'aimerais faire comme un masque.  
exemple de catégories visibles:
viande
légumes
fruits

 
si click sur viande alors
viande
-boeuf
-poulet
-canard
légumes
fruits

 
merci encore de ton aide je commence à y voir un peu plus clair déjà (surtout pour l'enregistrement)
 
a bientot

n°2183944
vave
Nice to meet me
Posté le 04-04-2013 à 07:17:57  profilanswer
 

Oui tu peux l'utiliser pour connaitre le chemin de où enregistrer :

Code :
  1. Private Sub Enregistrer_Click()
  2. Dim NomFichier As String
  3. Dim Chemin as string
  4. NomFichier = TbxTexte & "_" & Format(Now(), "YYYYMMDD" )
  5. Chemin = thisWorkbook.path
  6. ActiveWorkbook.SaveAs Chemin & "\" & NomFichier, FileFormat:= _
  7.                           xlOpenXMLWorkbook, CreateBackup:=False
  8. End Sub


 
Pour la deuxième partie de la question, j'ai mis un msgbox histoire de mettre quelque-chose ne sachant pas ce que tu voulais alimenter avec les produits d'une catégorie.
En admettant que tu aies une listbox "Produits", tu pourrais faire ça par exemple :
 

Code :
  1. Private Sub Catégories_Change()
  2. Produits.clear 'tu vides la listbox Produits
  3. 'Ensuite tu l'alimentes en fonction de la catégorie
  4. if Catégories.Value = "viande" then
  5.    Produits.additem "Boeuf"
  6.    Produits.additem "Canard"
  7.    Produits.additem "Poulet"
  8. elseif Catégories.Value = "Légumes" then
  9.    Produits.additem "Brocolis"
  10.    Produits.additem "Courgettes"
  11.    Produits.additem "Poivrons"
  12. end if
  13. End Sub


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  enregistrement VBA et formation de catégories

 

Sujets relatifs
les tableaux d'enregistrement en c[VBA] Accéder aux variables d'un autre classeur
[VBA] Savoir si n'importe quel caractère défini est plusieurs fois...VBA supprimer cours de bourse
Programme VBA trouvant une valeur répondant à des conditions ET/OUSOS VBA Besoin d'aide pour un programme
Lancer invite de commande en VBAEcritude dans un fichier.bat à partir de VBA
problème programmation VBAVBA prob de doublon
Plus de sujets relatifs à : enregistrement VBA et formation de catégories


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR