Enregistrement de données VBA

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
 

romano86

XLDnaute Nouveau
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...
 

Statistiques des forums

Discussions
312 527
Messages
2 089 355
Membres
104 136
dernier inscrit
redzzo