Saisie de données

  • Initiateur de la discussion laurent
  • Date de début
L

laurent

Guest
Bonjour,

ayant parcouru le forum, je suis tombé sur le post
Lien supprimé
et j'y ai trouvé le fichier 'Saisie_etat_de_fraisV2.zip' qui m'a particulierement intéréssé. Néamoins, j'aimerai savoir à quoi correspond la case 'Saisie de données', est-ce une macro?
De plus, je souhaiterai modifier le formulaire qui apparait lorsque je clic sur cette même case 'Saisie de données' de facon à avoir deux autre menu deroulant (comme dans l'indiqué 'Nom de Pompier') et aussi à avoir une case qui m'indique directement la date que j'ai selectionnée à partir du petit calendrier, en plus de la case deja existante qui indique directement la semaine correspondante au jour que j'ai selectionnée dans le calendrier.

J'espere avoir été clair?

Je vous remerci d'avance.

laurent
 

ChTi160

XLDnaute Barbatruc
Salut Laurent

1 j'ai bien sûr regardé ton fichier et l'on rentre dans un domaine que je ne connais pas les Graphiques
j'ai créé une macro(ci dessous) qui dans ton fichier colonne mission, récupère sans doublons les différentes missions et les colle dans la colonne J et compte par la même le nombre de ces missions en K
je me suis ensuite lancé dans l'enregistrement d'une macro qui créée un Graphique jusque là pas de problème ,c'est pour ensuite intégrer les données relative à la plage (J,K) que celà se corse (comme aurait dit Napoléon)
je vais continué à chercher je crois que sur le Forum de très nombreuses question concernant les Graphiques ont été posée et je pense que l'on devrait trouver son bonheur

Code:
Sub CreGraph()
Dim derlgn As Integer, I As Integer, M As Integer, L As Integer
Dim tabtemp As Variant
Dim TabResult()
Dim Mission As New Collection
With ActiveSheet
derlgn = .Range('F65536').End(xlUp).Row
tabtemp = .Range(.Cells(2, 6), .Cells(derlgn, 6)).value
For I = 1 To UBound(tabtemp, 1)
On Error Resume Next
Mission.Add tabtemp(I, 1), CStr(tabtemp(I, 1))
On Error GoTo 0
Next
 ReDim TabResult(Mission.Count, 2)
For M = 1 To Mission.Count

 TabResult(M, 1) = Mission(M)
Next
 For M = 1 To Mission.Count
  For L = 1 To UBound(tabtemp, 1)
 
    If TabResult(M, 1) = tabtemp(L, 1) Then
        TabResult(M, 2) = TabResult(M, 2) + 1
    
    End If
    Next
 Next
   
 For L = 1 To UBound(TabResult, 1)
    .Cells(L + 1, 10) = TabResult(L, 1)
    .Cells(L + 1, 11) = TabResult(L, 2)
 Next
End With
End Sub
bon Week End

Message édité par: ChTi160, à: 10/06/2005 16:41
 
L

laurent

Guest
Bonjour tout le monde!

Salut ChTi160

Désolé de ne te répondre seulement maintenant, j'ai passé le week-end trés loin de mon ordinateur, en pleine nature, profitant pleinement du soleil et de la chaleur... :p
La macro que tu m'as faite marche bien et je t'en remerci!

Pour ce qui est du graph, j'ai trouvé quelque chose de pas mal sur le forum:
Lien supprimé
Il reste quelque petits trucs à bidouiller, mais ça devrait se régler d'ici peu je pense!

Bonne journée!

laurent
 
L

laurent

Guest
Bonjour à tous

Salut ChTi160

Apres avoir rajouté ta macro dans mon fichier, j'ai pu me rendre compte qu'elle fonctionne bien (cf feuille 1 Trim), mais, lorsque je modifie la liste des mission réalisée (cf 2 Trim), je met à jour la macro (touches: ctrl+g) les listes dans les colonnes J et K ne sont réelement mises à jour, c'est à dire que, si je ne met que '39e second' comme mission par exemple, alors son nombre va augmenter, néanmoins, les autres (qui ne sont donc plus présents dans la liste en F apres modification) sont encore présents en J et K!
Voila donc mon souci!
Auriez vous une idée?

Thanks

laurent
 
L

laurent

Guest
Décidement....


laurent [file name=Saisie_etat_LaurentV822.zip size=30764]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Saisie_etat_LaurentV822.zip[/file]
 

Pièces jointes

  • Saisie_etat_LaurentV822.zip
    30 KB · Affichages: 25

ChTi160

XLDnaute Barbatruc
Salut laurent
Oups je me suis dit je n'arriverai pas a comprendre la Question
mais si ca y est
c'est juste qu'il n'était pas prévu d'effacer la plage variable de J:K
j'ai rajouté cette fonctionnalité en bleu dans la procédure
celà efface la plage avant de recopie de la nouvelle.
Sub CreGraph()
Dim derlgn As Integer, I As Integer, M As Integer, L As Integer
Dim tabtemp As Variant
Dim TabResult()
Dim Mission As New Collection
With ActiveSheet
derlgn = .Range('F65536').End(xlUp).Row
tabtemp = .Range(.Cells(2, 6), .Cells(derlgn, 6)).Value
For I = 1 To UBound(tabtemp, 1)
On Error Resume Next
Mission.Add tabtemp(I, 1), CStr(tabtemp(I, 1))
On Error GoTo 0
Next
ReDim TabResult(Mission.Count, 2)
For M = 1 To Mission.Count

TabResult(M, 1) = Mission(M)
Next
For M = 1 To Mission.Count
For L = 1 To UBound(tabtemp, 1)

If TabResult(M, 1) = tabtemp(L, 1) Then
TabResult(M, 2) = TabResult(M, 2) + 1

End If
Next
Next
derlgn = .Range('J65536').End(xlUp).Row
.Range('J2:K' & derlgn).ClearContents

For L = 1 To UBound(TabResult, 1)
.Cells(L + 1, 10) = TabResult(L, 1)
.Cells(L + 1, 11) = TabResult(L, 2)
Next
End With
End Sub
Bonne Journée

Message édité par: Chti160, à: 14/06/2005 11:07
 
L

laurent

Guest
Salut ChTi160
J'ai pas du être trés compréhensible, je m'en excuse...
Mais finalement tu as compris et ta solution marche bien! merci!

Bonne journée à toi aussi (et aux autres biensur!)

laurent
 
L

laurent

Guest
Bonjour le forum, bonjour ChTi160 !

Je reviens avec mes petits soucis!
Alors mon probleme est le suivant: j'ai plusieurs feuilles dans mon classeur, et je voudrais que la commande permettant de saisir les données ne soit fonctionnelle que pour la feuil1, car sur les autres feuilles contiennent des tableaux croisés dynamique ou des graph issus de ces tableau. Auriez-vous une petite idée à me proposer?

Merci !


ludo
 

ChTi160

XLDnaute Barbatruc
Salut Laurent
Bonjour le Forum

eh oui Laurent on a des idées on a même que celà :woohoo: :woohoo:

bon on avez dans ThisWorkbooK

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Cancel = False

If ActiveSheet.Name = 'AA' Then Exit Sub
If Not Intersect(Target, Range('A1')) Is Nothing Then
With Jean_luc
.StartUpPosition = 0
.Left = 141
.Top = 130
End With
Jean_luc.Show
End If
Cancel = True

End Sub
il faut simplement copier la partie en Bleu dans
le module de [Feuil1(code )] de la feuille que tu veux
dans Worksheet choisir BeforeDoubleClick

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

et ensuite copier la partie en bleu
ce qui donne
'----------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = False
If Not Intersect(Target, Range('A1')) Is Nothing Then
With Jean_luc
.StartUpPosition = 0
.Left = 141
.Top = 130
End With
Jean_luc.Show
End If
Cancel = True

End Sub

'--------------------
si problème le dire
l'ouverture du Userform ne se fera quand Double Cliquant dans la cellule A1 de la Feuil1 pour l'exemple

Oupsss je pense que tu peux copier coller la procèdure entre pointillés
bonne fin de Journée

Message édité par: Chti160, à: 24/06/2005 15:31
 
L

laurent

Guest
Bonjour à tous !

alors j'ai essayé ce que tu m'as filé, et ca continue à fonctionner comme avant!
Ex: quand je double-clic sur A1 de la Feuil2 ou de la Feuil3, ca continue à me proposer de saisir les données par le biais du formulaire de saisie.
Auriez-vous une autre petite suggestion de comment procéder pour n'avoir le formulaire de saisie qui apparait uniquement quand je double-clic sur A1 de la Feuil1 uniquement?

Merci !


laurent [file name=Saisie_etat_LaurentV9_20050627090915.zip size=38802]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Saisie_etat_LaurentV9_20050627090915.zip[/file]
 

Pièces jointes

  • Saisie_etat_LaurentV9_20050627090915.zip
    37.9 KB · Affichages: 22

Discussions similaires