XL 2010 saisie compteur sur plusieurs équipements

komarlehomard

XLDnaute Junior
Bonjour , je reviens vers vous trouver une lumière .
Je saisis des compteurs sur plusieurs équipements , j'y arrive avec une macro super longue, je voulais savoir si vous aviez une solution plus simple.
En fait je rentre des dates (E5) et compteurs en (F5 : F10)
J'aimerais enregistrer les nouveaux compteurs sur les équipements équivalents après clic sur bouton saisie sans page supplémentaires.
Je suis ouvert à toutes propos si vous voulez changer la forme du mode de saisie.
Je vous remercie par avance du temps que vous allez m'accorder.
 

Pièces jointes

  • aide saisie compteur.xlsm
    20.9 KB · Affichages: 2
Solution
Re,
est ce que tu peux me livrer une possibilité de changer la date ?
Dans la PJ la date utilisée est celle en C2.
Autre petite question comment s'appelle ta façon de procéder ?
C'est du code VBA tout simplement. Ca n'a pas de nom spécifique.
J'ai rajouté des commentaires, ce sera peut être plus simple à comprendre :
VB:
Public L%, C%
Sub EnregistrerFlo()
    Flo = [C4]                                              ' On mémorise la réf Flo
    If Application.CountIf([A11:A200], Flo) > 0 Then        ' Si N° Flo est dans la colonne A
        C = 4                                               ' Alors Colonne D à remplir ( colonne 4 )
        L = Application.Match(Flo, [A1:A200], 0)            ' Sur quelle ligne se trouve la...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour komarlehomard,
j'y arrive avec une macro super longue
Vous auriez pu la livrer avec le fichier. :rolleyes:

Un essai en PJ avec une liste déroulante pour les Flo, et cette macro :
VB:
Public L%, C%
Sub EnregistrerFlo()
    Flo = [C4]
    If Application.CountIf([A11:A200], Flo) > 0 Then
        C = 4: L = Application.Match(Flo, [A1:A200], 0): Remplit
    ElseIf Application.CountIf([F11:F200], Flo) > 0 Then
        C = 9: L = Application.Match(Flo, [F1:F200], 0): Remplit
    End If
End Sub
Sub Remplit()
    Application.ScreenUpdating = False: Dim N%
    For N = 0 To 4
        Cells(L + N, C - 1) = Date
        Cells(L + N, C) = Format(Cells(N + 5, "E"), "# ##0")
    Next N
End Sub
La liste déroulante évite de se taper le N° du Flo, et surtout évite les erreurs.
Qui plus est, il est inutile d'entrer la date, le VBA s'en charge.
 

Pièces jointes

  • aide saisie compteur.xlsm
    25.7 KB · Affichages: 4
Dernière édition:

komarlehomard

XLDnaute Junior
Bonjour Sylvanu
Merci beaucoup du temps que tu m'as accordé, la solution que tu me donnes me convient parfaitement, c'est super.
Je ne regrette pas de n'avoir mis ma macro car je ne fonctionne qu'avec des formules de et des copiés collés.
Si je peux me permettre de te demander un petit plus, est ce que tu peux me livrer une possibilité de changer la date ?
Autre petite question comment s'appelle ta façon de procéder ? Afin que je fasse des recherches pour essayer de me former .
Mais surtout encore merci beaucoup.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
est ce que tu peux me livrer une possibilité de changer la date ?
Dans la PJ la date utilisée est celle en C2.
Autre petite question comment s'appelle ta façon de procéder ?
C'est du code VBA tout simplement. Ca n'a pas de nom spécifique.
J'ai rajouté des commentaires, ce sera peut être plus simple à comprendre :
VB:
Public L%, C%
Sub EnregistrerFlo()
    Flo = [C4]                                              ' On mémorise la réf Flo
    If Application.CountIf([A11:A200], Flo) > 0 Then        ' Si N° Flo est dans la colonne A
        C = 4                                               ' Alors Colonne D à remplir ( colonne 4 )
        L = Application.Match(Flo, [A1:A200], 0)            ' Sur quelle ligne se trouve la ref Flo
        Remplit                                             ' On remplt les cellules
    ElseIf Application.CountIf([F11:F200], Flo) > 0 Then    ' Sinon Si N° Flo est dans la colonne F
        C = 9                                               ' Alors Colonne I à remplir ( colonne 9 )
        L = Application.Match(Flo, [F1:F200], 0)            ' Sur quelle ligne se trouve la ref Flo
        Remplit                                             ' On remplt les cellules
    End If
End Sub
Sub Remplit()                                               ' On recopie E5:E9 à la bonne place
    Application.ScreenUpdating = False: Dim N%
    Range(Cells(L, C - 1), Cells(L + 4, C - 1)) = [C2]      ' On recopie sur la bonne plage la date présente en C2
    Range(Cells(L, C), Cells(L + 4, C)) = [E5:E9].Value     ' on recopie E5:E9 sur la bonne plage
End Sub
J'ai aussi remis la macro dans un module, c'est plus "naturel" que de l'avoir dans ThisWorkbook
( c'était une erreur )

Peut être serait ce bien qu'après avoir enregistré les données la plage E5:E9 soit effacée.
Dans ce cas remplacer Remplit par :
Code:
Sub Remplit()                                               ' On recopie E5:E9 à la bonne place
    Application.ScreenUpdating = False: Dim N%
    Range(Cells(L, C - 1), Cells(L + 4, C - 1)) = [C2]      ' On recopie sur la bonne plage la date présente en C2
    Range(Cells(L, C), Cells(L + 4, C)) = [E5:E9].Value     ' on recopie E5:E9 sur la bonne plage
    [E5:E9].ClearContents
End Sub
 

Pièces jointes

  • aide saisie compteur (V2).xlsm
    28 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 221
Membres
103 158
dernier inscrit
laufin