> 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
28,04 €Support écran PC / TV pivotant sur pied (26 à 55 pouces, max 45 kg) à 28,04 €
Valable jusqu'au 30 Juillet

Amazon propose actuellement le support écran PC / TV pivotant sur pied Bontec à 28,04 € seulement grâce à un coupon de réduction à activer sur la page du produit. Ce support est adapté aux écrans plats de 26 à 55 pouces LED, LCD et PLASMA à compatibilité VESA de 100x100 jusqu'à 400x400.  Il supporte jusqu'à 45Kg, est régable en hauteur et cache les câbles disgracieux à l'arrière. Vous pouvez le mettre par exemple sur un meuble pour surélever votre TV ou votre PC (et mettre une enceinte dessous ?) sans avoir besoin de percer le mur.


> Voir l'offre
140,46 €Tablette 10.4 pouces Samsung Galaxy Tab A7 2020 (8 coeurs, 32Go, WUXGA+, RAM 3 Go) à 140,46 € livrée
Valable jusqu'au 28 Juillet

Amazon Allemagne fait une superbe vente flash sur la tablette 10.4 pouces Samsung Galaxy Tab A7 2020 qui passe à 135 € (avec la TVA ajustée). Comptez 5,46 € pour la livraison en France soit un total de 140,46 € livrée. On la trouve ailleurs à plus de 210 €. Cette tablette possède un écran 10.4 pouces WUXGA+ (2000x1200 pixels), un processeur octa-core 2 GHz, 3 Go de RAM, un espace de stockage de 32 Go extensible par MicroSD, le WiFi, le bluetooth et tourne sous Android 10.

La tablette pourra être mise en français dès le premier démarrage et vous bénéficiez d'une garantie européenne de 2 ans. Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane.

L'offre porte sur un stock très limité, ne tardez pas !


> Voir l'offre
79,53 €Disque dur Seagate BarraCuda 4 To à 79,53 €
Valable jusqu'au 30 Juillet

Cdiscount propose actuellement le disque dur Seagate BarraCuda - 4 To (ST4000DM004) à 79,53 €. Ce disque dur 3.5 pouces SATA III tourne à 5400tr/min et possède 256 Mo de cache. On le trouve ailleurs autour de 95 €. 


> 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