Problème programmation VBA débutant :)
Bonjour,
Je suis novice en programmation VBA, j'essaye de "programmer" un petit logiciel qui me permettra de gérer les absences dans mon entreprise.
Donc j'ai une partie "identification" ou à l'aide d'une combobox "j'appel" le nom du personnel voulu et ma programmation me permet de récupérer les autres informations liés au l'identification de la personne (prénom...).
Dans la deuxième partie je cherche à récupérer le jour correspondant à une date précise de la même manière et là ca ne marche pas j'ai beau chercher....
L'autre souci est que j'ai 2 feuilles dans le fichier :
- la première me permet de "saisir" les infos et donc de constituer une "base de données" des absences
- La deuxième contient TOUTEs les infos me permettant de remplir les combobox et textbox....
MAIS je n'arrive pas à lui dire de chercher les infos sur la feuil3 (informations) quand je lance le formulaire sur la Feuil1.... et si je reste sur la Feuil3 alors le programme qui me range les infos dans la feuil1 me les range dans la 3 et dezingue donc ma base d'informations....
Je cherche bien evidement à progresser et comprendre donc si jamais vous me répondez, pourriez-vous m'expliquer la où je me plante?
Je vous remercie d'avance
En fait je suis pas sur d'avoir compris
Excusez moi mais en fait j'ai pas tout compris donc je reprend mon post pour voir si je me suis bien expliquer ou pas
J'ai 2 soucis
1/ j'ai un code qui permet de récuperer des infos dans des textbox à partir d'un combobox qui fonctionne :
Code:
1 2 3 4 5 6 7
| Private Sub ComboBox5_Change()
Dim Ligne As Long
Ligne = Application.Match(Me.ComboBox5.Value, [E:E], 0)
Me.TextBox1.Text = Application.Index([F:F], Ligne, 1)
Me.TextBox2.Text = Application.Index([G:G], Ligne, 1)
Me.TextBox3.Text = Application.Index([H:H], Ligne, 1)
End Sub |
MAIS il ne fonctionne pas içi :
Code:
1 2 3 4 5 6 7 8 9
| Private Sub ComboBox2_Change()
ComboBox2.Value = Format(ComboBox2.Value, "dd/mm/yyyy")
With Sheets("Feuil3")
Dim Ligne As Long
Ligne = Application.Match(Me.ComboBox2.Value, [B:B], 0)
Me.TextBox4.Text = Application.Index([A:A], Ligne, 1)
End Sub |
ERREUR "End sub attendu"
2/ le problème de localisation des infos et du recopiage des données en appuyant sur mon bouton
Si je lance le formulaire alors que la Feuil1 est "choisie" il ne trouve pas les données de la Feuil3 et si je met la Feuil3 en premier il aura tendance à coller les infos au moment d'appuyer sur le bouton d'envoi dans la Feuil3 au lieu de la Feuil1
Voilà, j'espère avoir été plus claire que dans mon premier post
Cordialement
merci pour ce premier indice
Merci beaucoup je vais de ce pas tester cette réponse qui va peut etre me faire avancer...
Je suis désolé , j'avoue que je me lance dans un projet en apprenant sur le tas je risque de vous ré-embété très prochainement...
Euh vous avez pas un endroit où?
Bon je crois que je suis pas assez avancer dans le VBA pour faire ce projet lol la preuve je ne trouve même pas comment "terminer" mon WITH....
Je voulais savoir si vous aviez un ou des tutos de la base d base pour apprendre le VBA ca serait peut être plu ssimple que je recommence tout à zéro lol
Merci d'avance de vos propositions
Cordialement
NOUVEAU CODE QUI FONCTIONNE mais encore souci de précision des sheets à utiliser
Re bonjour,
Je sais je vuos embete mais j'avance à grands pas :
j'ai un nouveau code
Le seul souci est de le forcer quand je suis sur ma feuil "absences" d'aller chercher les infos des textbox par rapport au combox de reference dans la feuil infos et non pas dans le feuil absences
j'ai beau mettre des with et end with, si je lance mon formulaire à partir de la page absences, il ne me remplit pas les textbox alors que si je suis sur la feuil infos la pas de souci
je verrais apres pour le collage des infos dans absences
Merci d'avance
le nouveau code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Private Sub ComboBox1_Change()
ComboBox1.Value = Format(ComboBox1.Value, "dd/mm/yyyy")
With ThisWorkbook.Sheets("INFOS")
Ligne = ComboBox1.ListIndex
If Ligne > 0 Then TextBox1.Text = Cells(Ligne + 1, 2)
End With
End Sub
Private Sub ComboBox2_Change()
ComboBox2.Value = Format(ComboBox2.Value, "hh:mm")
End Sub
Private Sub ComboBox3_Change()
ComboBox3.Value = Format(ComboBox3.Value, "hh:mm")
End Sub
Private Sub ComboBox4_Change()
With ThisWorkbook.Sheets("INFOS")
Ligne = ComboBox4.ListIndex
If Ligne > 0 Then TextBox2.Text = Cells(Ligne + 1, 6)
If Ligne > 0 Then TextBox3.Text = Cells(Ligne + 1, 7)
If Ligne > 0 Then TextBox4.Text = Cells(Ligne + 1, 8)
End With
End Sub
Private Sub ComboBox5_Change()
End Sub
Private Sub CommandButton1_Click()
L = Sheets("ABSENCES").Range("a65536").End(xlUp).Row + 1
Range("A" & L).Value = TextBox1
Range("B" & L).Value = ComboBox1
Range("C" & L).Value = ComboBox2
Range("D" & L).Value = ComboBox3
Range("E" & L).Value = ComboBox4
Range("F" & L).Value = TextBox2
Range("G" & L).Value = TextBox3
Range("H" & L).Value = TextBox4
Range("I" & L).Value = ComboBox5
End Sub
Private Sub UserForm_Click()
End Sub |
très cordialement et encore merci a tous de votre aide
Ok ok c'est bon j'ai compris!!!
J'ai dit encore une betise dans le précédent post mais c'est bon j'ai reussit :)
MERCI BEAUCOUP
Je laisse ce post ouvert au cas ou j'ai encore une ou deux demandes je le ferme des demain si tout va bien...
MERCI ET ENCORE MERCI !!!!
:)
J'avance mais à nouveau petit souci
Bonjour!!!!!
Me revoilà :)
Donc j'ai pas mal avancé sur mon code (Merci encore de vos interventions!!!)
le nouveau code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
Private Sub ComboBox1_Change()
ComboBox1.Value = Format(ComboBox1.Value, "dd/mm/yyyy")
With ThisWorkbook.Sheets("INFOS")
Ligne = ComboBox1.ListIndex
If Ligne > 0 Then TextBox1.Text = Sheets("INFOS").Cells(Ligne + 1, 2)
End With
End Sub
Private Sub ComboBox2_Change()
ComboBox2.Value = Format(ComboBox2.Value, "hh:mm")
End Sub
Private Sub ComboBox3_Change()
ComboBox3.Value = Format(ComboBox3.Value, "hh:mm")
End Sub
Private Sub ComboBox4_Change()
With ThisWorkbook.Sheets("INFOS")
Ligne = ComboBox4.ListIndex
If Ligne > 0 Then TextBox2.Text = Sheets("INFOS").Cells(Ligne + 1, 6)
If Ligne > 0 Then TextBox3.Text = Sheets("INFOS").Cells(Ligne + 1, 7)
If Ligne > 0 Then TextBox4.Text = Sheets("INFOS").Cells(Ligne + 1, 8)
End With
End Sub
Private Sub ComboBox5_Change()
End Sub
Private Sub CommandButton1_Click()
If ComboBox1.Text = "" Then
MsgBox ("Merci de choisir une date")
End If
If ComboBox2.Text = "" Then
MsgBox ("Merci de choisir une heure de début")
End If
If ComboBox3.Text = "" Then
MsgBox ("Merci de choisir une heure de fin")
End If
If ComboBox4.Text = "" Then
MsgBox ("Merci de choisir une personne")
End If
If ComboBox1.Text = "" Then
MsgBox ("Merci de choisir un motif")
End If
L = Sheets("ABSENCES").Range("a65536").End(xlUp).Row + 1
Sheets("ABSENCES").Range("A" & L).Value = TextBox1
Sheets("ABSENCES").Range("B" & L).Value = ComboBox1
Sheets("ABSENCES").Range("C" & L).Value = ComboBox2
Sheets("ABSENCES").Range("D" & L).Value = ComboBox3
Sheets("ABSENCES").Range("E" & L).Value = ComboBox4
Sheets("ABSENCES").Range("F" & L).Value = TextBox2
Sheets("ABSENCES").Range("G" & L).Value = TextBox3
Sheets("ABSENCES").Range("H" & L).Value = TextBox4
Sheets("ABSENCES").Range("I" & L).Value = ComboBox5
Me.ComboBox1.Value = ""
Me.ComboBox2.Value = ""
Me.ComboBox3.Value = ""
Me.ComboBox4.Value = ""
Me.ComboBox5.Value = ""
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
End Sub |
Le souci est dans le bouton de commande, comme vous le voyez suremetn je lui demande de vérifier si il manque des infos , il détecte bien que les cases sont vides mais continue quand meme l'envoi des infos...
Je cherche a se que quand il détecte une case vide il affiche le message correspondant mais qu'il arrete la procédure afin que la personne puisse saisir les infos manquantes...
Au passage dites moi se que vous pensez de mon nouveau code :)
Merci encore d'avance !!! :)