> Tous les forums > Forum Bureautique
 Écrire sur un classeur ferméSujet résolu
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
ronibo
  Posté le 29/07/2013 @ 23:26 
Aller en bas de la page 
Petit astucien

Bonjour le forum,

J'aimais écrire sur un classeur fermer.

Je détail mon problème, je possède de deux fichiers "facture" et "client"
Sur le fichier facture il y a un USF qui permet de saisir des fiches clients

Et sur le fichier "clients" se trouve la liste de mes clients. Ce fichier est dans le répertoire c:/

J'aimerais que lorsque que je rentre (j'ajoute) des données depuis USF situé dans le classeur "facture" j'aimerais qu'ils se mettent automatiquement dans le classeur "Clients" sachant que se fichier sera fermé.

Mon but est de pouvoir sélectionner un client depuis cette liste (classeur "clients") grâce a une liste déroulante

Merci a vous pour votre aide

À bientôt

Facture : http://cjoint.com/?CGDxyAfVLP6

Clients : http://cjoint.com/?CGDxzBO92kN

Publicité
denewton
 Posté le 29/07/2013 à 23:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Le fichier client serait-il la recopie de l'onglet "client" du ficher facture ?

ordialement

Bertrand

ronibo
 Posté le 30/07/2013 à 00:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut denewton,

merci de te pencher sur mon problème :)

Non il faut le supprimer, je veux travailler seulement avec le fichier qui se trouve dans c:

Et grâce a se fichier sélectionner un client avec une liste déroulante

Mytå
 Posté le 30/07/2013 à 00:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut le Forum

Différentes méthode de Frédéric Sigonneau

Lien : Lire et écrire dans un classeur fermé

Mytå

ronibo
 Posté le 30/07/2013 à 00:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Myta merci pour le lien :)

Je débute en vba, et je c'est pasq trop comment procédé

ronibo
 Posté le 30/07/2013 à 19:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour le fil,

J'ai en fin réussi à avoir un truck comme je le veux.

Par contre concernant mon USF, j'aimerais modifier quelques truck, j'ai essayé mais j'ai pas réussi

Je vous mets une capture ci joint,

Voici les nouvelles version ;

Facture : http://cjoint.com/?CGEtlTdYzAi

Clients : http://cjoint.com/?CGEtm0zQn1f

Si quelqu'un peut jeter un oeil, ça serai sympa,

Merci

a+



Modifié par ronibo le 30/07/2013 19:13
corinthien
 Posté le 30/07/2013 à 19:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour le forum…

@ ronibo, voila le code pour le fond rouge du Nom de la société

Private Sub BAjouter_Click()
Dim Ctrl As Control
Dim DerLigne As Long
If Trim(Me.TNom) = "" Then
Me.TNom.BackColor = vbRed
MsgBox "Veuilez renseigner le nom de la société"
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets("Clients")
DerLigne = .Range("A" & Rows.Count).End(xlUp).Row
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then .Range("A" & DerLigne).Offset(1, Ctrl.Tag) = Ctrl
Next
Trier
.Visible = xlSheetVisible
.Copy
.Visible = xlSheetVeryHidden
End With
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs Filename:=Chemin & Fichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
.Close
End With
Me.TNom.BackColor = vbWhite
Unload Me
End Sub

Private Sub TNom_Change()
If Me.TNom.BackColor = vbRed Then Me.TNom.BackColor = vbWhite
TNom = UCase(TNom)
End Sub


Pour le reste, un peu de patience…

corinthien
 Posté le 30/07/2013 à 20:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Pour le numéro de téléphone :


Private Sub UserForm_Initialize()
Me.TNuméroTéléphone.MaxLength = 10
End Sub

Mytå
 Posté le 30/07/2013 à 20:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re le Forum

Juste pour dire que Banzai64 à déjà fourni des solutions sur un autre Forum,

et moi je n'aime pas travailler en double pour rien.

Surtout quand le demandeur ne fait même pas entione du multi-postage.

Fin du suivi de la discussion.

Mytå



Modifié par Mytå le 30/07/2013 20:45
Publicité
ronibo
 Posté le 30/07/2013 à 20:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

re,

Oui, j'ai fait une demande sur un autre forum

ce sont les points que mon cher ami Banzai64 n'a pas reussi a faire.

C'est pour ça que j'ai demandé de l'aide ici, il n'y a pas de double

corinthien
 Posté le 30/07/2013 à 20:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Pour l'adresse mail :

Private Sub TEmail_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TEmail.Value <> "" Then Me.TEmail.Value = UCase(Left((Me.TEmail.Value), 1)) & LCase(Right(Me.TEmail.Value, Len(Me.TEmail.Value) - 1))
End Sub


Supprimer

Private Sub TEmail_Change()
'If Me.TEmail <> "" Then Me.TEmail = Application.Proper(Me.TEmail)
End Sub



Modifié par corinthien le 30/07/2013 21:10
corinthien
 Posté le 30/07/2013 à 21:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

C'est sympa, pas un mot sur les réponses, à croire que ça ne t'intéresse pas et bien moi non plus…

ronibo
 Posté le 30/07/2013 à 23:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Excuse moi corinthien je viens de rentrer chez moi,

Je teste tot ça,

Merci pour tout ces code, et merci pour le temps que tu m'as accordé :)

a+

ronibo
 Posté le 31/07/2013 à 00:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re,

Je viens de tout tester,

Pour le texbox "Nom" c'est parfait, ça me convient me convient amplement :)

Concernant email : rien ne change (me met pas la majuscule de la première lettre)

Pour le téléphone, c'est bon, mais j'aimerais que les espaces se mettent en même temps que la saisie, c'est possible?

Voila je pense que j'ai tout dis :)

Merci encore pour ton aide corinthien puis désolé si je t'ai répondu en retard :(

vieuxmonsieur
 Posté le 31/07/2013 à 08:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonjour,

essai :

Private Sub TextBox1_Change() 'Mettre le bon nom de TextBox
Dim Initiale As String, Reste As String
If Len(TextBox1) > 1 Then
Initiale = UCase(Left(TextBox1, 1))
Reste = LCase(Right(TextBox1, Len(TextBox1) - 1))
TextBox1 = Initiale & Reste
End If
End Sub

corinthien
 Posté le 31/07/2013 à 12:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

@ronibo

tu peux le mettre sur cet événement :

Private Sub TEmail_Change()
If Me.TEmail.Value <> "" Then Me.TEmail.Value = UCase(Left((Me.TEmail.Value), 1)) & LCase(Right(Me.TEmail.Value, Len(Me.TEmail.Value) - 1))
'If Me.TEmail <> "" Then Me.TEmail = Application.Proper(Me.TEmail)
End Sub



Modifié par corinthien le 31/07/2013 12:41
corinthien
 Posté le 31/07/2013 à 13:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

@ronibo, pour le téléphone :

Private Sub TNuméroTéléphone_Change()
Select Case Len(Me.TNuméroTéléphone)
Case 2, 5, 8, 11
Me.TNuméroTéléphone.Value = Me.TNuméroTéléphone.Value & " "
End Select
End Sub


et modifier

Private Sub UserForm_Initialize()
Me.TNuméroTéléphone.MaxLength = 14
End Sub

pour le mail :

Private Sub TEmail_Change()
If Me.TEmail.Value <> "" Then Me.TEmail.Value = UCase(Left((Me.TEmail.Value), 1)) & LCase(Right(Me.TEmail.Value, Len(Me.TEmail.Value) - 1))
End Sub



Modifié par corinthien le 31/07/2013 13:31
Publicité
ronibo
 Posté le 31/07/2013 à 14:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Merci à vous deux pour les codes,

@vieuxmonsieur : je teste ça de suite, mais je me demande c'est pour quel texbox?

@corinthien : Merci pour les code, exactement s'que je voulais ;)

Il me manque plus que mon problème avec le texbox adresse, si quelqu'un à une idée, il est le bienvenu :)

A bientot

vieuxmonsieur
 Posté le 31/07/2013 à 14:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

re,

pour mettre en majuscule la premiere lettre.

a toi d'adapter le TextBox ou de mettre dans ta TextBox le code :

Dim Initiale As String, Reste As String
If Len(TextBox1) > 1 Then
Initiale = UCase(Left(TextBox1, 1))
Reste = LCase(Right(TextBox1, Len(TextBox1) - 1))
TextBox1 = Initiale & Reste
End If


corinthien
 Posté le 31/07/2013 à 16:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

@ronibo, voila le code pour remplacer tous les mots que tu veux dans une chaîne de caratères, pour voir le résultat avec Debug.Print, il faut appuyer sur Ctrl+G

Sub Test_Replace()

a = "10 AVeNue Du GénÉral De GaULe, ROUTE dU L'PLAce D' S'"

Debug.Print a ' a supprimer quand tu l'auras intégré dans ton code

a = Application.Proper(a) ' pour qu'il ne traine pas de majuscule dans un mot

c = Array("du", "avenue", "place", "route", "d'", "l'") ' ajoute les mots que tu veux dans la ligne

For r = 0 To UBound(c)

a = Replace(a, c(r), LCase(c(r)), , , vbTextCompare)

Next

Debug.Print a ' a supprimer quand tu l'auras intégré dans ton code

End Sub



Modifié par corinthien le 31/07/2013 16:30
ronibo
 Posté le 31/07/2013 à 23:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir le fil,

@vieuxmonsieur : merci pour le code, je l'adapterais avec mes texbox :)

@corinthien : Merci pour le code mais j'ai rien compris lol,

1. je le mets ou cet code, en module? ou en TAdresse (Texbox)

2. Debug.Print c'est quoi?

3. Je dois procéder comment pour installer ce code?

Merci :)

A bientot

ronibo
 Posté le 01/08/2013 à 10:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour le forum :)

Après plusieurs essaies, je constate que je peux pas saisir de lettre (pour saisir la ville) dans le texbox CodePostalVille

Puis je voulais demander, si c'était possible de bloquer la saisir des lettre dans le texbox Téléphone?

Merci et bonne journée a vous tous :)

vieuxmonsieur
 Posté le 01/08/2013 à 11:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonjour,

ne pense-tu pas qu'il serait plus judicieux de mettre un Combobx pour les CP et 1 Tbx pour les villes ...



Modifié par vieuxmonsieur le 01/08/2013 11:26
corinthien
 Posté le 01/08/2013 à 19:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour à toutes et tous.

@ronibo, place le code sur Exit de TAdresse comme ça :

Private Sub TAdresse_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim A As String, C, R As Integer
A = Me.TAdresse.Value
' c'est pour qu'il ne traine pas de majuscule dans un mot
A = Application.Proper(A)
' ajoute les mots que tu veux dans la ligne en-dessous
C = Array("du", "avenue", "place", "route", "d'", "l'")
For R = 0 To UBound(C)
A = Replace(A, C(R), LCase(C(R)), , , vbTextCompare)
Next
Me.TAdresse.Value = A
End Sub

Debug.Print, c'est quand tu démarres une macro dans VBE avec la fenêtre Exécution.

Pour le CP, c'est normal, tu as :

Private Sub TCodePostalVille_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TCodePostalVille <> "" And Len(Trim(Me.TCodePostalVille)) <> 5 Then
MsgBox "Le code postal est incorrect"
Cancel = True
End If
End Sub

Pour bloquer les lettres de TNuméroTéléphone, je te ferais ça ce soir.

A+



Modifié par corinthien le 01/08/2013 20:04
corinthien
 Posté le 01/08/2013 à 19:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Pour le téléphone, ajouter cette procédure :

Private Sub TNuméroTéléphone_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub

ronibo
 Posté le 01/08/2013 à 19:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour à tous et à toutes,

Vieuxmonsieur : Mer ci pour la proposition :), je réfléchi à tout ça et je te redis tout ça :)

corinthien : Merci pour les macro :)

Pour le texbox adresse c'est bon j'ai compris le principe :)

Le code postal, c'est ok aussi ;)

Par contre, le téléphone, il me met plus les espaces entre les numéro :)

A bientot

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
11,90 €Adaptateur USB 3.0 Ethernet Gigabit TP-Link UE300 à 11,90 €
Valable jusqu'au 03 Août

Amazon fait une promotion sur l'adaptateur USB 3.0 Ethernet Gigabit TP-Link UE300 qui passe à 11,90 € au lieu de 20 €. Cet adaptateur vous permettra de rajouter une prise Ethernet Gigabit à votre ordinateur portable (ou votre tablette via un adaptateur OTG) qui en est dépourvu.


> Voir l'offre
89,99 €Alimentation modulaire Corsair RM750 80+ Gold à 89,99 €
Valable jusqu'au 03 Août

Cdiscount propose actuellement l'alimentation modulaire Corsair RM750 à 89,99 € grâce au code promo 10EUROS. Cette alimentation de 750W est certifiée 80+ Gold et est garantie 10 ans. Entièrement modulaire, vous pourrez brancher uniquement les câbles (fournis) dont vous avez besoin. On la trouve ailleurs à partir de 120 €. 


> Voir l'offre
164,99 €Ecran PC 24 pouces Samsung Odyssey G3 (FHD, 144 Hz, 1 ms) à 164,99 €
Valable jusqu'au 03 Août

Cdiscount fait une promotion sur l'écran PC Samsung 24 pouces Samsung Odyssey G3 à 164,99 € avec le code promo 15EUROS. Cet écran de 24 pouces offre une définition FHD de 1920x1080 pixels et est compatible FreeSync Premium avec un taux de réponse de 1 ms et un rafraichissement de 144 Hz. Connectiques HDMI, VGA et DP.


> Voir l'offre

Sujets relatifs
Tester si classeur est ouvert ou fermé
Excel 2007 Copier/Coller d’une feuille à l’autre Dans un même classeur.
Recopie cellule dans un autre classeur
Excel mémoire insuffisante pour ouvrir un nouveau classeur
Classeur repetitions de colonne en colonne
ccleaner ne se ferme pas
Classeur Calc de Libre Office
écrire "à" en majuscule
ecrire dans un fichier PDF
Avec quoi écrire sur android
Plus de sujets relatifs à Écrire sur un classeur fermé
 > Tous les forums > Forum Bureautique