Macro Recherche et Saisie auto

  • Initiateur de la discussion Initiateur de la discussion nicoland
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nicoland

Guest
Bonjour à tous!

J'aurais besoin d'aide sur une macro. Je dispose d'un tableau (que je vous met en pièce jointe) regroupant diverses infos (numéro de ligne, date, libéllé du travail, prix, facturé). Ce tableau rsique d'être très grand à l'avenir.

Je voudrais disposer d'une macro (que j'associerais à un bouton) qui, en fonction du numéro de ligne entré dans la celulle H1 me mettte automatiquement "OK" dans la colonne "Facturé" de la ligne correspondante.

Ex: si dans H1 je met 154 (ET que je lance la macro), je voudrais que dans la cellule E154 se marque automatiquement "OK".

Merci bcp
nicoland
 

Pièces jointes

Re : Macro Recherche et Saisie auto

Bonjour Nicoland, bonjour le forum,

Dans ton fichier j'ai utilisé la macro événementielle Change avec le code suivant :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Target.Address <> "$H$1" Then Exit Sub 'si le changement a lieu ailleurs qu'en H1, sort de la procédure
If Target.Value = "" Then Exit Sub 'si H1 est effacé, sort de la procédure
Cells(Target.Value, 5).Value = "OK" 'écrit "OK" à l'endroit indiqué
End Sub
 

Pièces jointes

Re : Macro Recherche et Saisie auto

nicoland à dit:
Bonjour à tous!

J'aurais besoin d'aide sur une macro. Je dispose d'un tableau (que je vous met en pièce jointe) regroupant diverses infos (numéro de ligne, date, libéllé du travail, prix, facturé). Ce tableau rsique d'être très grand à l'avenir.

Je voudrais disposer d'une macro (que j'associerais à un bouton) qui, en fonction du numéro de ligne entré dans la celulle H1 me mettte automatiquement "OK" dans la colonne "Facturé" de la ligne correspondante.

Ex: si dans H1 je met 154 (ET que je lance la macro), je voudrais que dans la cellule E154 se marque automatiquement "OK".

Merci bcp
nicoland
Salut
Macro demandée (saisie par boite de dialogue, au lieu de H1
PHP:
Sub Ligne_Fact()
Dim Rep As String
Rep = InputBox("N°ligne à facturer ?", "CLOTURE DE FACTURE")

If IsNumeric(CLng(Rep)) Then
    If CLng(Rep) < 1 Or CLng(Rep) > 65536 Then
        MsgBox ("ce n'est pas un nombre valide" & Chr(13) & CLng(Rep) & Chr(13) & "recommencez")
        Exit Sub
    End If
    If CLng(Rep) > Range("C65536").End(xlUp).Row Then
        MsgBox ("la ligne mentionnée ne comporte pas de libéllé")
        Range("A" & CLng(Rep)).Activate
        Exit Sub
    End If
    Range("E" & CLng(Rep)) = "OK"
Else
    MsgBox ("ce n'est pas un nombre" & Chr(13) & "recommencez")
    Exit Sub
End If
End Sub
Mais plusieurs questions :
Ligne te sets à quelque chose ? parce que comme c'est le reflet de la ligne Excel, je ne teste pas

Faut-il vérifier la validité de l'opération, soit en sélectionnant le cellule à remplir et en l'affichant ou en donnant le libéllé ou en vérifiant l'absence de "OK" ?

Ne serait-il pas préférable de tester sur le travail (libéllé) ou le numéro du travail, plutot que sur la ligne ?
A+
 
Re : Macro Recherche et Saisie auto

merci Gorfael pour toute ces précisions.
Je suis d'accrod avec toi dans ce cas comment pourrais-ton fonctionner ac un numéro de travail (celui serait donc différent du numéro de ligne)

Je pense que tu as raison Gorfael:
- Est-il possible d'afficher un message lorsque l'entré dans le Userform ne comporte aucune saisie (actuellement çà bug)?
- Pourrais-t-on aussi faire un message comme quoi la ligne a bien été validé (ex: "la ligne 158 a bien été validé") en donnant aussi le libéllé du travail dans le message ?
- Afficher la cellule

MERCI POUR TOUT
 
Re : Macro Recherche et Saisie auto

nicoland à dit:
merci Gorfael pour toute ces précisions.
Je suis d'accrod avec toi dans ce cas comment pourrais-ton fonctionner ac un numéro de travail (celui serait donc différent du numéro de ligne)

Je pense que tu as raison Gorfael:
- Est-il possible d'afficher un message lorsque l'entré dans le Userform ne comporte aucune saisie (actuellement çà bug)?
- Pourrais-t-on aussi faire un message comme quoi la ligne a bien été validé (ex: "la ligne 158 a bien été validé") en donnant aussi le libéllé du travail dans le message ?
- Afficher la cellule

MERCI POUR TOUT
Re...
Alors une autre macro
PHP:
Sub Ligne_Fact()
Dim Rep As Long
Dim X As Long
Dim Flg_Rep As Boolean

'Réception numéro
Rep = Application.InputBox("N°Travail à facturer ?" & Chr(13) & _
        "(juste le nombre)", "CLOTURE DE FACTURE", , , , , , 1)
If Rep = 0 Then Exit Sub
'Recherche de la ligne de travail
For X = 2 To Range("C65536").End(xlUp).Row
    If "Travail " & Rep = Range("C" & X) Then
        Flg_Rep = True
        Exit For
    End If
Next X
'pas de correspondance
If Flg_Rep = False Then
    MsgBox ("Pas de travail correspondant à " & Rep)
    Exit Sub
End If
'ça correspond
Rep = MsgBox(Chr(13) & "Cest bien le travail : " & Range("C" & X) & Chr(13) & _
    "pour un prix de " & Range("D" & X) & " € que vous voulez facturer ?", _
    vbQuestion + vbYesNo, "Facturation")
If Rep = 6 Then
    Range("E" & X) = "OK"
    Range("E" & X).Activate
Else
    MsgBox ("Tant pis !!!")
End If
End Sub
Là, input box n'est plus une fonction, mais une méthode d'Excel : On peut contrôler le Type de retour, et avec 1 (après la série de virgule qui concerne position, défaut, etc. voir aide), tout retour autre que nombre sera détecté comme une erreur

je pose la question de confirmation avant d'effectuer l'opération, ça me semble plus logique que de dire "c'est pas celle-là que tu voulais ? Dommage" 🙂

Il ne te rest qu'à essayer
A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
8
Affichages
2 K
V
Réponses
11
Affichages
2 K
G
N
  • Question Question
Réponses
2
Affichages
887
nicoland
N
M
Réponses
2
Affichages
1 K
Magickf
M
B
Réponses
1
Affichages
1 K
N
Réponses
7
Affichages
1 K
Nikky 74
N
S
Réponses
1
Affichages
941
J
Retour