Macro excel saisie de données
Résolu
volcolm
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
volcolm Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
volcolm Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde !
Voilà mon problème, je me suis mis à la programmation en VBA pour créer une macro excel dans le cadre d'un projet. Mais voilà je suis comme qui dirait perdu, désespéré, énervé et à bout ! (Bon d'un côté j'ai jamais était très fan de ce genre de chose)
C'est donc pour cela que je vous demande de l'aide ! Qui pourrait me dire ce qui ne va pas dans mon programme, ce qui est faux, comment l'améliorer et surtout comment le faire marcher ??? (est il au moins proche de quelque chose qui marche ???)
Le but de la macro serait de permettre à l'opératrice de sélectionner son nom parmi une liste, ensuite d'entrer la quantité produite et les rebuts. Tout cela serait ensuite envoyé dans une base de donnée sur une feuille excel, avec en même temps la saisie automatique de la date et heure.
Voilà à peu près tout mon problème, ci-dessous vous trouverez mon « programme », si jamais quelqu'un veut bien m'aider je suis disponible s'il manquait des précisions !
Merci à vous
Cordialement,
Yann
Module:
Sub initialisation_saisiqte()
With saisiqte
.Opérateur.RowSource = "'paramètres'!" & Sheets("paramètres").Range("A1").CurrentRegion.Address
.date_saisie.Caption = Format(Now, "dd/mm/yy hh:mm")
End With
End Sub
Sub validation_saisiqte()
Dim qte As Integer
With qte
If .Opérateur.Value = "Nom du déclarant" Or .Opérateur.Value = "" Then
MsgBox "Veuillez vous identifier", vbOKOnly, "Opérateur manquant"
.Opérateur.SetFocus
Exit Sub
ElseIf .qte.Value = "" Or .qte.Value = "" Then
MsgBox "Veuillez saisir la quantité d'armature produite", vbOKOnly, "quantité manquante"
.qte.SetFocus
Exit Sub
End If
.Hide
traitement_saisiqte
End With
End Sub
Sub traitement_saisiqte()
Dim ligne As Integer
With ActiveWorkbook.Sheets("données")
.Unprotect
If Not IsEmpty(.Range("A8")) Then
ligne = .Range("A7").End(xlDown).Row + 1
Else
ligne = 8
End If
'Placer les valeurs sur le tableau excel'
.Cells(ligne, 2).Value = Format(Date, "dd/mm/yy")
.Cells(ligne, 3).Value = Format(Time, "hh:mm")
.Cells(ligne, 4).Value = saisiqte.Opérateur
.Cells(ligne, 6).Value = saisiqte.qte
End Sub
Objet "saisie"
Private Sub CommandButton1_Click()
initialisation_quantite
quantite.Show
End Sub
Objet "données"
Private Sub CommandButton3_Click()
Dim ligne As Integer
With Sheets("données")
If Not IsEmpty(.Range("A8")) Then
ligne = Range("A7").End(xlDown).Row
Else
ligne = 8
End If
.Unprotect
.Rows(ligne + 1).Delete Shift:=xlUp
ActiveWindow.ScrollRow = ligne
.Protect DrawingObjects:=True, contents:=True, Scenarios:=True
End With
End Sub
FIN DU PROGRAMME
P.S.: L'UserForm est aussi défini, le problème est que la macro se lance bien, l'userform s'affiche et je peux tout saisir, mais le fait de cliquer sur le bouton OK ne le referme pas et aucune donné n'est envoyée dans la feuille excel.
Merci pour votre aide
Voilà mon problème, je me suis mis à la programmation en VBA pour créer une macro excel dans le cadre d'un projet. Mais voilà je suis comme qui dirait perdu, désespéré, énervé et à bout ! (Bon d'un côté j'ai jamais était très fan de ce genre de chose)
C'est donc pour cela que je vous demande de l'aide ! Qui pourrait me dire ce qui ne va pas dans mon programme, ce qui est faux, comment l'améliorer et surtout comment le faire marcher ??? (est il au moins proche de quelque chose qui marche ???)
Le but de la macro serait de permettre à l'opératrice de sélectionner son nom parmi une liste, ensuite d'entrer la quantité produite et les rebuts. Tout cela serait ensuite envoyé dans une base de donnée sur une feuille excel, avec en même temps la saisie automatique de la date et heure.
Voilà à peu près tout mon problème, ci-dessous vous trouverez mon « programme », si jamais quelqu'un veut bien m'aider je suis disponible s'il manquait des précisions !
Merci à vous
Cordialement,
Yann
Module:
Sub initialisation_saisiqte()
With saisiqte
.Opérateur.RowSource = "'paramètres'!" & Sheets("paramètres").Range("A1").CurrentRegion.Address
.date_saisie.Caption = Format(Now, "dd/mm/yy hh:mm")
End With
End Sub
Sub validation_saisiqte()
Dim qte As Integer
With qte
If .Opérateur.Value = "Nom du déclarant" Or .Opérateur.Value = "" Then
MsgBox "Veuillez vous identifier", vbOKOnly, "Opérateur manquant"
.Opérateur.SetFocus
Exit Sub
ElseIf .qte.Value = "" Or .qte.Value = "" Then
MsgBox "Veuillez saisir la quantité d'armature produite", vbOKOnly, "quantité manquante"
.qte.SetFocus
Exit Sub
End If
.Hide
traitement_saisiqte
End With
End Sub
Sub traitement_saisiqte()
Dim ligne As Integer
With ActiveWorkbook.Sheets("données")
.Unprotect
If Not IsEmpty(.Range("A8")) Then
ligne = .Range("A7").End(xlDown).Row + 1
Else
ligne = 8
End If
'Placer les valeurs sur le tableau excel'
.Cells(ligne, 2).Value = Format(Date, "dd/mm/yy")
.Cells(ligne, 3).Value = Format(Time, "hh:mm")
.Cells(ligne, 4).Value = saisiqte.Opérateur
.Cells(ligne, 6).Value = saisiqte.qte
End Sub
Objet "saisie"
Private Sub CommandButton1_Click()
initialisation_quantite
quantite.Show
End Sub
Objet "données"
Private Sub CommandButton3_Click()
Dim ligne As Integer
With Sheets("données")
If Not IsEmpty(.Range("A8")) Then
ligne = Range("A7").End(xlDown).Row
Else
ligne = 8
End If
.Unprotect
.Rows(ligne + 1).Delete Shift:=xlUp
ActiveWindow.ScrollRow = ligne
.Protect DrawingObjects:=True, contents:=True, Scenarios:=True
End With
End Sub
FIN DU PROGRAMME
P.S.: L'UserForm est aussi défini, le problème est que la macro se lance bien, l'userform s'affiche et je peux tout saisir, mais le fait de cliquer sur le bouton OK ne le referme pas et aucune donné n'est envoyée dans la feuille excel.
Merci pour votre aide
A voir également:
- Macro excel saisie de données
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
5 réponses
Bonjour,
Ce serait plus facile si tu déposais ton classeur (sans donnée confidentielle) sur Cjoint.com (ou autre) et mettre le lien dans un poste suivant
A+
Ce serait plus facile si tu déposais ton classeur (sans donnée confidentielle) sur Cjoint.com (ou autre) et mettre le lien dans un poste suivant
A+
Re,
Le code relatif à un UserForm doit en principe, être mis dans le module de l'UserForm et pas dans un Module.
Ton classeur en retour
A+
NB : Reste le N° de semaine, je ne sais pas ce que tu veux et l'équipe..
Pour l'équipe serait bien de mettre la référence dans la page Paramètres en colonne B
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Le code relatif à un UserForm doit en principe, être mis dans le module de l'UserForm et pas dans un Module.
Ton classeur en retour
A+
NB : Reste le N° de semaine, je ne sais pas ce que tu veux et l'équipe..
Pour l'équipe serait bien de mettre la référence dans la page Paramètres en colonne B
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question