Menu

Programmation VBA

Messages postés
12
Date d'inscription
mardi 30 octobre 2018
Dernière intervention
6 décembre 2018
-
Bonjour

Voilà , Sa fais un long moment que je cherche à faire plusieurs choses :
1) lorsque je remplis un formulaire sur un fichier Excel, je veux que celui-ci se copie automatiquement sur 2 feuilles différentes. Ces deux feuille ne servent pas à la même chose par la suite mais affiche les même donnés avec des données ajouter en supplément.

2) lorsque je sélectionne une composante dans ma combobox1 de mon formulaire, une donnée s'ajoute dans la textbox1 automatiquement via une feuille Data.

3) Lorsque je remplie la textbox 2 Date, celle ci se transforme en mois-année dans la textbox3.

Voilà, j'ai essayé plusieurs formulation trouvé en l'adaptant mais sans fonctionner et je me suis imprimer le fichier cours VBA de Excel mais je ne sais pas comment faire, j'apprend tous seul sans quelqu'un pour me guider dans mon entreprise.

Pouvez-vous m'aider sur ces différents problèmes et en même temps que vous codé mettre des explications pour comprendre par la suite et apprendre.

Merci d'avance

je vous met le fichier pour comprendre, ou j'ai supprimé ce que j'avais insérer a force du codage ( un coup de pouce le fichier ne veut pas y aller)
Afficher la suite 

Votre réponse

2 réponses

Messages postés
13798
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
13 décembre 2018
0
Merci
Bonjour,

je vous met le fichier pour comprendre
Y en a pas!!!!!!!!!!!!!!
Commenter la réponse de f894009
Messages postés
12
Date d'inscription
mardi 30 octobre 2018
Dernière intervention
6 décembre 2018
f894009
Messages postés
13798
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
13 décembre 2018
-
Bonjour,

Fichier modifie pour UF1: https://mon-partage.fr/f/WQYP1M5N/
Pour UF2 a vous de voir…….
azeuur31
Messages postés
12
Date d'inscription
mardi 30 octobre 2018
Dernière intervention
6 décembre 2018
-
ok merci beaucoup je regarde avec quelques question en retour pour comprendre
azeuur31
Messages postés
12
Date d'inscription
mardi 30 octobre 2018
Dernière intervention
6 décembre 2018
-
Bonjour désolé je n'avais pas trop eu le temps de regarder entre le travail et ma préparation pour le déménagement.

Que veut dire ces abréviation : WCV , PCV , Wsh , Lbl ?

Peut tu me traduire ceci:
.Range("E" & PCV).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

ET Ceci

'control entree avec format date
Private Sub Textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
TextBox2.MaxLength = 10
Select Case KeyAscii
Case 46, 48 To 57
' 01/04/2016
VT = Len(TextBox2)
If VT = 2 Or VT = 5 Then TextBox2 = TextBox2 & "/"

Merci beaucoup tu as beaucoup raccouci mon code et je pense que ce sera plus facile à gérer ou modifier.

Cdt

azeuur31
azeuur31
Messages postés
12
Date d'inscription
mardi 30 octobre 2018
Dernière intervention
6 décembre 2018
-
Pour le reste sa va je comprend, sa va pouvoir me servir aussi pour d'autre documents à faire.
f894009
Messages postés
13798
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
13 décembre 2018
-
Bonjour,

Vous connaissez un peu la programmation VBA!!!!

Private Sub Image1_Click()
    Dim PCV
    Dim Wsh As Worksheet
    
    Set Wsh = Worksheets("Classement par Champ")    'definition objet

    If (ComboBox1.Value <> "" And ComboBox2.Value <> "" And TextBox2.Value <> "" And TextBox3.Value <> "") Then
        With Worksheets("Classement par nom")
            PCV = .Range("B" & .Rows.Count).End(xlUp).Row + 1       'Premiere Cellule Vide "Classement par nom"
            WCV = Wsh.Range("B" & .Rows.Count).End(xlUp).Row + 1    'premiere cellule vide "Classement par Champ"
            .Range("B" & PCV) = ComboBox1.List(ComboBox1.ListIndex, 0)
            .Range("F" & PCV) = ComboBox2
            Wsh.Range("B" & WCV) = ComboBox1.List(ComboBox1.ListIndex, 0)
            Wsh.Range("F" & WCV) = ComboBox2
            'remplie les valeurs renseign?es
            .Range("C" & PCV) = Lbl_Num_Designation.Caption
            .Range("D" & PCV) = TextBox2
            Wsh.Range("C" & WCV) = Lbl_Num_Designation.Caption
            Wsh.Range("D" & WCV) = TextBox2
            'formule Date: copie de la formule de la cellule
            .Range("E" & PCV - 1).Copy
            .Range("E" & PCV).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=False
            Application.CutCopyMode = False
            .Range("G" & WCV) = CLng(TextBox3)
            
            Wsh.Range("E" & WCV - 1).Copy
            Wsh.Range("E" & WCV).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
                    SkipBlanks:=False, Transpose:=False
            Application.CutCopyMode = False
            Wsh.Range("G" & WCV) = CLng(TextBox3)
            'Numero
            .Range("A" & PCV).FormulaLocal = "=ligne()-7"
            Wsh.Range("A" & WCV).FormulaLocal = "=ligne()-7"
            'Efface les commbox et les textbox
            ComboBox1.Value = ""
            ComboBox2.Value = ""
            Lbl_Num_Designation.Caption = ""
            TextBox2.Value = ""
            TextBox3.Value = ""
        End With
    Else
        MsgBox "Toutes les cases ne sont pas renseign?es"
    End If

End Sub


'control entree avec format date
Private Sub Textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    TextBox2.MaxLength = 10     'longueur max de la chaine
    Select Case KeyAscii
        Case 46, 48 To 57
            ' 01/04/2016
            VT = Len(TextBox2)      'longueur de la chaine
            If VT = 2 Or VT = 5 Then TextBox2 = TextBox2 & "/"      'si 2 ou 5 ajout du "/"
        Case Else
            KeyAscii = 0
            MsgBox "Seulement des chiffres!!!!!"
    End Select
End Sub


Table des code ASCII: https://www.purebasic.com/french/documentation/reference/ascii.html
Commenter la réponse de azeuur31