Enregistrement de données VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

romano86

XLDnaute Nouveau
Bonjour à tous,

J'ai bien avancé hier soir sur mon travail VBA, notamment grâce à toutes les recherches effectuées sur ce site (merci porcinet).
Cependant, j'ai toujours un problème qui m'agace!!!

En cliquant sur un bouton de commande, différentes informations (inscrites dans des TEextBox) sur un client doivent s'enregistrer dans une feuille (Excel), c'est le code client qui m'ennuie.

Celui-ci doit se génerer automatiquement après avoir cliquer sur le bouton. Il se compose des quatres 1ères lettres de la raison sociale et d'un code à 4 chiffres.
J'ai donc créé deux TextBox, une correspondant aux lettres de la raison sociale et une autre aux 4 chiffres. Ensuite, j'avais pensé les concatener pour obtenir un seul code dans la feuille Excel.
De plus, le numéro à 4 chiffres commence à 0001 et doit s'incrémenter de 1 à chaque fois que l’on a un client dont le nom commence de la même façon. Exemple : 2 entreprises dont l’une se nomme DUPUIS Electricité et l’autre DUPUY Transports. DUPUIS Electricité, la première saisie sera codifiée DUPU0001 la seconde DUPUY Transports sera codifiée DUPU0002.

Là, j'avoue que je sèche complètement...
Je sollicite votre aide...
Voici le code que j'essaie de développer :

Public Sub BTN_ajouter_Click()

'Enregistrer les données dans la feuille "données_clts"

Dim Index As Long
Dim concatene As Variant
Dim i As Integer

With Worksheets("donneesclts")

Index = .Range("J1")
If Index = 0 Then
Index = 1
End If
Index = Index + 1

For i = 2 To Index

CS_codeclt_1 = Left(UCase(CS_raissoc), 4) 'CS_codeclt_1=TextBox1
CS_codeclt_2 = "0###" 'CS_codeclt_2=TextBox3

concatene = CS_codeclt_1.Value And CS_codeclt_2.Value
Next i

.Range("J1") = Index
.Cells("index", 1).Value = concatene
.Cells("index", 2).Value = UCase("CS_raissoc")
.Cells("index", 3).Value = UCase("CS_denom")
.Cells("index", 4).Value = UCase("CS_adresse_1")
.Cells("index", 5).Value = UCase("CS_adresse_2")
.Cells("index", 6).Value = UCase("CS_adresse_3")
.Cells("index", 7).Value = TCS_cp 'code postal à 5 CHIFFRES!!! (à faire...)
.Cells("index", 8).Value = UCase("CS_ville")

End With

End Sub
Merci d'avance
 
Re : Enregistrement de données VBA

Merci de votre aide.

Mais j'ai toujurs un pb : j'ai une erreur de type 13 (additionner des élement s de type différent) qui se situe au niveau suivant :

Dim Index As Long
Dim concatene As Variant
Dim i As Integer
Dim code As Long

With Worksheets("donneesclts")

Index = .Range("J1")
If Index = 0 Then
Index = 1
End If
Index = Index + 1

For i = 2 To Index

CS_codeclt_1 = Left(UCase(CS_raissoc), 4) 'CS_codeclt_1=TextBox1
CS_codeclt_2 = Format(CS_codeclt_2, "0####")

CS_codeclt_2 = code 'CS_codeclt_2=TextBox3

concatene = CS_codeclt_1 & code
Next i

.Range("J1") = Index
.Cells("index", 1) = concatene
.Cells("index", 2).Value = UCase("CS_raissoc")
.Cells("index", 3).Value = UCase("CS_denom")
.Cells("index", 4).Value = UCase("CS_adresse_1")
.Cells("index", 5).Value = UCase("CS_adresse_2")
.Cells("index", 6).Value = UCase("CS_adresse_3")
.Cells("index", 7).Value = CS_cp 'code postal à 5 CHIFFRES!!! (à faire...)
.Cells("index", 8).Value = UCase("CS_ville")

End With

End Sub


Je ne comprend vraiment pas, même en essayant différentes solutions...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour