VBA , Combobox

Bonjour à tous , je suis en train de mettre au point un fichier professionnel d'édition de documents transport et j'ai besoin de votre aide .

Je m'explique :

Onglet ZDGN HSO OUDALLE

CLIC sur le bouton " EDITER LA ZDGN " ( ce qui m'ouvre userform8 dans VISUAL BASIC )

Dans ma COMBOBOX1 appelée ( DELIVERY INNOSPEC ) prenez la commande 70026281 ( c'est ma 1ère simulation )

Automatiquement , tout s'affiche dans les TEXTBOXS ( ma base de donnée étant le tableau dans l'ONGLET HSO OUDALLE )

Ensuite en cliquant sur VALIDER j'aimerais que tout s'affiche sur le document dans les cellules suivantes .

Immatriculation ( Textbox5 , colonne G de ma base de donnée ) , dans les cellules AB47 ( fusionnée ) , BC53

Transporteur ( Textbox8 , colonne H de ma base de donnée ) , dans les cellules BC17 , FG16 , CD51

Seals Number ( Textbox7 , colonne I de ma base de donnée ) , dans les cellules CD47 , et la suite en C48 si case trop petite

Quantité ( Textbox6 , colonne J de ma base de donnée ) , dans les cellules C28 , F28 , G28 , G44 ,

J'ai un problème dans mon codage COMBOBOX1 ( débogage )

Option Explicit

Dim fa As Worksheet, fb As Worksheet

Dim ln&, i&, adr$

Private Sub ComboBox1_Change()

'(tout découle de ce combobox1)

ln = ComboBox1.ListIndex + 3

TextBox1 = fa.Range("D" & ln)

'Textbox1 est référence Huntsman

TextBox5 = fa.Range("G" & ln)

'Textbox5 est l'immatriculation remorque/chassis

TextBox6 = fa.Range("J" & ln)

'Textbox6 est le poids chargé

TextBox7 = fa.Range("I" & ln)

'Textbox7 est numéro de plombs remorque

TextBox8 = fa.Range("H" & ln)

'Textbox8 est le transporteur

End Sub

Private Sub CommandButton1_Click()

'Dim Dl As Integer

'If ActiveSheet.Name = "ZDGN HSO OUDALLE" Then 'Or ActiveSheet.Name = ""

fb.Range("H3") = ComboBox1

For i = 1 To 6

If Controls("TextBox" & i).Value = "" Then

If MsgBox("Toutes les informations ne sont pas saisies , voulez vous continuez ?", vbYesNo) = vbYes Then

Else

Exit Sub

End If

End If

adr = Choose(i, "H5", "E8", "G8", "H8", "B53", "H24")

fb.Range(adr) = Controls("Textbox" & i)

Next i

Unload Me

Worksheets("ZDGN HSO OUDALLE").PrintPreview

End Sub

Private Sub UserForm_initialize()

Set fa = Sheets("HSO OUDALLE")

Set fb = Sheets("ZDGN HSO OUDALLE")

ComboBox1.List = fa.Range("E3:E" & fa.Range("E" & Rows.Count).End(xlUp)(2).Row).Value

End Sub

Je bloque , si je peux avoir un petit coup de main sur ce sujet ! Merci énormément .

Petit UP

Bonjour Atomiik Loic,

« Onglet ZDGN HSO OUDALLE » : quel nom d'onglet bizarre !

désolé, mis à part que tu m'as donné la dalle, j'ai que dalle à proposer !

prends alors ce post pour un 2ème petit up en ta faveur !

qui peut répondre à mon copain Loic, please ?

dhany

Bonsoir,

Une proposition avec un code simplifié via l'utilisation de noms parlants et identiques pour vos TextBoxes et plages de cellules.

Exemple : Immatriculation,

1- nom donné à TextBox5

==> Immatriculation

2- nom donné à la colonne G pour la feuille "HSO OUDALLE"

==> Immatriculation (='HSO OUDALLE'!$G:$G)

3- nom donné aux cellules AB47 et BC47 pour la feuille "BL HSO OUDALLE"

==> Immatriculation (='ZDGN HSO OUDALLE'!$A$47:$B$47;'ZDGN HSO OUDALLE'!$B$53:$C$53)

Afin pour identifier les TextBoxes relatives à votre base "HSO OUDALLE", ajout du Tag "HSO" dans celles concernées.

NB : "Seals Number ( Textbox7 , colonne I de ma base de donnée ) , dans les cellules CD47 , et la suite en C48 si case trop petite "

Je n'ai pas traité le cas de la cellule C48 qui alourdirait le code, il doit y avoir un moyen plus simple par exemple fusionner C47 et C48, plutôt que C47 et D47.

Rechercher des sujets similaires à "vba combobox"