Code VBA enregistrer
Oliviercroon
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour et merci d'avance pour votre temps,
j'ai un fichier Excel que je voudrais utiliser au boulot avec des collègues.
C'est un fichier avec un Userform pour pouvoir passer des commandes
.
Dans l'userform on a des TextBox et Combobox, dont deux ComboBox qui soit encodent ce qui est dans le menu déroulant soit si c'est un article encore inconnu l'ajoute à la base de bonnées qui est sur la Feuil2.
Une fois tout les articles entrés, on ferme l'userform et on" enregistre sous " pour pouvoir lui donner un nom et le retrouver plus tard.
Ensuite on Clic sur le bouton envoi et celui-ci permet d'envoyer par mail la commande à la secrétaire qui gère les commandes.
Mon problème c'est que lorsque j'enregistre le fichier sous un autre nom, mon fichier de base lui n'enregistre pas les modification dans la base de donnée.
Private Sub CommandButton1_Click() 'bouton valider
Call Enreg 'active le code Enreg du Modul1
Unload Me 'Ferme l'Userform
UserForm1.Show 'Ouvre l'Userform
End Sub
Private Sub CommandButton2_Click() 'bouton quitter
Call Enreg
Unload Me
End Sub
Sub Enreg()
Dim dernligne As Long
With Worksheets("Feuil1")
derligne = .Range("A1048576").End(xlUp).Row + 1 'dit de descendre en fin de feuille, de remonter sur la dernière remplie et de descendre de 1
.Range("A" & derligne).Value = ComboBox1.Text 'complète la colonne A avec les données du comboBox
.Range("B" & derligne).Value = ComboBox2.Text
.Range("C" & derligne).Value = TextBox1.Text
.Range("D" & derligne).Value = ComboBox3.Text
If Recherche("Descriptions", ComboBox3.Text) = 0 Then 'recherche: si Decriptions n'existe pas=0
Call Insertion_cellule_Plage_Nom("Descriptions", ComboBox3.Text) 'insertion cellule dans plage Decriptions et ecriture nouvelle Decriptions
End If
.Range("E" & derligne).Value = TextBox2.Text
.Range("F" & derligne).Value = TextBox3.Text
.Range("H" & derligne).Value = ComboBox4.Text
If Recherche("Fournisseurs", ComboBox4.Text) = 0 Then 'recherche: si Fournisseurs n'existe pas=0
Call Insertion_cellule_Plage_Nom("Fournisseurs", ComboBox4.Text) 'insertion cellule dans plage Fournisseurs et ecriture nouveau Fournisseurs
End If
.Range("I" & derligne).Value = TextBox4.Text
End With
Call RAZ_UF
End Sub
Sub RAZ_UF() 'vide l'userform
ComboBox1 = ""
ComboBox2 = ""
TextBox1 = ""
ComboBox3 = ""
TextBox2 = ""
TextBox3 = ""
ComboBox4 = ""
TextBox4 = ""
End Sub
Private Sub userform_initialize()
TextBox1.Value = Format(Now, "dd-mm-yyyy") 'mets la date dans le TextBox1
'cré une liste déroulante dans les ComboBox 1 et 3
Me.ComboBox1.List = Array("Bus", "Camion", "Espace Vert", "Festivitées", "Mécanique", "Menuiserie", "Peinture", "Signalisation", "Travaux", "Voirie")
Me.ComboBox2.List = Array("Alain", "Anthony", "Benoit", "Bernard", "Bibi", "DD", "Eddy", "Eric", "Fernand", "Fred B", "Fred M", "Gaëtan", "Gary", "Gilles", "Hasane", "Jean-Luc K", "Jean-Luc S", "Jean-Marc G", "Jean-Marc M", "Julien", "Kevin", "Louis", "Luc", "Michel", "Nebhi", "Nicolas", "Olivier", "Pascal", "Patrick", "Raphaël", "Ronald", "Silvio", "Thibaut", "Vincent H", "Vincent T")
End Sub
Private Sub UserForm_Click()
End Sub
Sub envoiClasseur2()
Dim Fichier As Variant
Fichier = Application.GetOpenFilename("Tous les fichiers(*.*),*.*")
MsgBox Fichier 'cré un mail et envoi le mail
Dim MaMessagerie As Object
Dim MonMessage As Object
Set MaMessagerie = CreateObject("Outlook.application")
Set MonMessage = MaMessagerie.Createitem(0)
MonMessage.to = "xxxxxxx@abcd.be"
MonMessage.CC = "xxxxxxx@abcd.be"
'MonMessage.CC = "yyyyyy@abcd.be"
'MonMessage.CC = "yyyyyy@abcd.be"
'MonMessage.CCI = "yyyyyy@abcd.be"'
MonMessage.attachments.Add Fichier
MonMessage = "Bon de commande"
contenu = "Bonjour,"
contenu = contenu & Chr(10) & Chr(13)
contenu = contenu & "Veuillez trouver en pièce jointe le bon de commande" & Chr(10) & Chr(13)
contenu = contenu & "Cordialement Olivier" & Chr(10) & Chr(13)
MonMessage.body = contenu
MonMessage.Send
Set MaMessagerie = Nothing
MsgBox "Votre demande a été envoyé"
End Sub
Sub Insertion_cellule_Plage_Nom(Plage, Txt) 'insertion cellule dans une plage nommee
With Range(Plage)
With .Cells(.Rows.Count, 1)
.Insert
End With
.Cells(.Rows.Count - 1, 1).Value = Txt
End With
End Sub
'recherche d'un texte dans une plage nommee
Function Recherche(Plage, Txt)
Recherche = Application.CountIf(Range(Plage), Txt)
End Function
Y aurait-il un code pour pouvoir enregistrer les modifications de la Feuil2.
Merci pour l'aide
Bonne journée
j'ai un fichier Excel que je voudrais utiliser au boulot avec des collègues.
C'est un fichier avec un Userform pour pouvoir passer des commandes
.
Dans l'userform on a des TextBox et Combobox, dont deux ComboBox qui soit encodent ce qui est dans le menu déroulant soit si c'est un article encore inconnu l'ajoute à la base de bonnées qui est sur la Feuil2.
Une fois tout les articles entrés, on ferme l'userform et on" enregistre sous " pour pouvoir lui donner un nom et le retrouver plus tard.
Ensuite on Clic sur le bouton envoi et celui-ci permet d'envoyer par mail la commande à la secrétaire qui gère les commandes.
Mon problème c'est que lorsque j'enregistre le fichier sous un autre nom, mon fichier de base lui n'enregistre pas les modification dans la base de donnée.
Private Sub CommandButton1_Click() 'bouton valider
Call Enreg 'active le code Enreg du Modul1
Unload Me 'Ferme l'Userform
UserForm1.Show 'Ouvre l'Userform
End Sub
Private Sub CommandButton2_Click() 'bouton quitter
Call Enreg
Unload Me
End Sub
Sub Enreg()
Dim dernligne As Long
With Worksheets("Feuil1")
derligne = .Range("A1048576").End(xlUp).Row + 1 'dit de descendre en fin de feuille, de remonter sur la dernière remplie et de descendre de 1
.Range("A" & derligne).Value = ComboBox1.Text 'complète la colonne A avec les données du comboBox
.Range("B" & derligne).Value = ComboBox2.Text
.Range("C" & derligne).Value = TextBox1.Text
.Range("D" & derligne).Value = ComboBox3.Text
If Recherche("Descriptions", ComboBox3.Text) = 0 Then 'recherche: si Decriptions n'existe pas=0
Call Insertion_cellule_Plage_Nom("Descriptions", ComboBox3.Text) 'insertion cellule dans plage Decriptions et ecriture nouvelle Decriptions
End If
.Range("E" & derligne).Value = TextBox2.Text
.Range("F" & derligne).Value = TextBox3.Text
.Range("H" & derligne).Value = ComboBox4.Text
If Recherche("Fournisseurs", ComboBox4.Text) = 0 Then 'recherche: si Fournisseurs n'existe pas=0
Call Insertion_cellule_Plage_Nom("Fournisseurs", ComboBox4.Text) 'insertion cellule dans plage Fournisseurs et ecriture nouveau Fournisseurs
End If
.Range("I" & derligne).Value = TextBox4.Text
End With
Call RAZ_UF
End Sub
Sub RAZ_UF() 'vide l'userform
ComboBox1 = ""
ComboBox2 = ""
TextBox1 = ""
ComboBox3 = ""
TextBox2 = ""
TextBox3 = ""
ComboBox4 = ""
TextBox4 = ""
End Sub
Private Sub userform_initialize()
TextBox1.Value = Format(Now, "dd-mm-yyyy") 'mets la date dans le TextBox1
'cré une liste déroulante dans les ComboBox 1 et 3
Me.ComboBox1.List = Array("Bus", "Camion", "Espace Vert", "Festivitées", "Mécanique", "Menuiserie", "Peinture", "Signalisation", "Travaux", "Voirie")
Me.ComboBox2.List = Array("Alain", "Anthony", "Benoit", "Bernard", "Bibi", "DD", "Eddy", "Eric", "Fernand", "Fred B", "Fred M", "Gaëtan", "Gary", "Gilles", "Hasane", "Jean-Luc K", "Jean-Luc S", "Jean-Marc G", "Jean-Marc M", "Julien", "Kevin", "Louis", "Luc", "Michel", "Nebhi", "Nicolas", "Olivier", "Pascal", "Patrick", "Raphaël", "Ronald", "Silvio", "Thibaut", "Vincent H", "Vincent T")
End Sub
Private Sub UserForm_Click()
End Sub
Sub envoiClasseur2()
Dim Fichier As Variant
Fichier = Application.GetOpenFilename("Tous les fichiers(*.*),*.*")
MsgBox Fichier 'cré un mail et envoi le mail
Dim MaMessagerie As Object
Dim MonMessage As Object
Set MaMessagerie = CreateObject("Outlook.application")
Set MonMessage = MaMessagerie.Createitem(0)
MonMessage.to = "xxxxxxx@abcd.be"
MonMessage.CC = "xxxxxxx@abcd.be"
'MonMessage.CC = "yyyyyy@abcd.be"
'MonMessage.CC = "yyyyyy@abcd.be"
'MonMessage.CCI = "yyyyyy@abcd.be"'
MonMessage.attachments.Add Fichier
MonMessage = "Bon de commande"
contenu = "Bonjour,"
contenu = contenu & Chr(10) & Chr(13)
contenu = contenu & "Veuillez trouver en pièce jointe le bon de commande" & Chr(10) & Chr(13)
contenu = contenu & "Cordialement Olivier" & Chr(10) & Chr(13)
MonMessage.body = contenu
MonMessage.Send
Set MaMessagerie = Nothing
MsgBox "Votre demande a été envoyé"
End Sub
Sub Insertion_cellule_Plage_Nom(Plage, Txt) 'insertion cellule dans une plage nommee
With Range(Plage)
With .Cells(.Rows.Count, 1)
.Insert
End With
.Cells(.Rows.Count - 1, 1).Value = Txt
End With
End Sub
'recherche d'un texte dans une plage nommee
Function Recherche(Plage, Txt)
Recherche = Application.CountIf(Range(Plage), Txt)
End Function
Y aurait-il un code pour pouvoir enregistrer les modifications de la Feuil2.
Merci pour l'aide
Bonne journée
A voir également:
- Code VBA enregistrer
- Code ascii - Guide
- Audacity enregistrer son pc - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
5 réponses
Oliviercroon
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
Merci pour les infos, je vais tester.
Bonjour, je ne parviens pas à sauvegarder uniquement les nouvelles données qui ont été misent dans la Feuil2. Et à garder le tableau de la feuil1 vierge pour une commande suivant.
PS: je comprend vite lorsqu'on explique longtemps :)
PS: je comprend vite lorsqu'on explique longtemps :)
Bonjour ,
voila ce que je fais et ce que j'ai.
1 j'ouvre mon fichier commande
2 J'ouvre mon Userform
3 Je compète l'Userform (si des article inconnu sont encoder, il les ajoute à ma base de donner en Feuil2
4 Une fois tout encoder je quitte l'Userform et mon tableau en Feuil1 est complèter
5 Je sauve sous une référence pour pouvoir retrouver ma commande (exemple commande1)
6 J'envoi la commande
Ce que je désir, c'est que ce qui est encoder en Feuil2 soit enregister dans le Fichier d'origine (commande) pour que la fois d'après si je doit en recommander je ne dois plus rechercher l'article sur le net ou ailleurs.
Pour le moment les nouveaux articles ne sont enregistrer que dans le fichier commande1
Merci pour votre temps et votre aide
voila ce que je fais et ce que j'ai.
1 j'ouvre mon fichier commande
2 J'ouvre mon Userform
3 Je compète l'Userform (si des article inconnu sont encoder, il les ajoute à ma base de donner en Feuil2
4 Une fois tout encoder je quitte l'Userform et mon tableau en Feuil1 est complèter
5 Je sauve sous une référence pour pouvoir retrouver ma commande (exemple commande1)
6 J'envoi la commande
Ce que je désir, c'est que ce qui est encoder en Feuil2 soit enregister dans le Fichier d'origine (commande) pour que la fois d'après si je doit en recommander je ne dois plus rechercher l'article sur le net ou ailleurs.
Pour le moment les nouveaux articles ne sont enregistrer que dans le fichier commande1
Merci pour votre temps et votre aide
Oui c'est ce qu'il faudrait mais je ne connais pas le code pour que cela s'enregistre automatiquement
https://www.cjoint.com/c/JBiuQ7Neenx
--le lien pour voir mon fichier
Si tu veux aller vite, marche seul mais si tu veux aller loin, marchons ensemble.
https://www.cjoint.com/c/JBiuQ7Neenx
--le lien pour voir mon fichier
Si tu veux aller vite, marche seul mais si tu veux aller loin, marchons ensemble.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour, je ne comprend pas comment l'ajouter au code
c'aurait été plus simple si tu avais utilisé les balises de code pour publier ton code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
peut-être devrais-tu expliquer ton niveau de connaissance en programmation VBA et ta compréhension du code que tu utilises, cela nous aiderait à comprendre le genre d'aide que tu cherches.
et aussi comprendre ce que cela implique de marcher avec toi.
peut-être devrais-tu expliquer ton niveau de connaissance en programmation VBA et ta compréhension du code que tu utilises, cela nous aiderait à comprendre le genre d'aide que tu cherches.
et aussi comprendre ce que cela implique de marcher avec toi.