Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je vous souhaite une Bonne et Douce Année 2013 avec, bien sur, la santé.


Je souhaiterais votre aide pour l'écriture d'une macro qui devra placer selon condition, dans la même feuille, des données saisies...

voir fichier joint

Merci pour le temps que vous voudrez bien vouloir m'accorder.


Bien à vous,
Christian
 

Pièces jointes

Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Bonjour Christian, le forum,

Avec mes meilleurs voeux pour 2013 🙂

Voici une solution dans le fichier joint :

Code:
Sub Valider()
Dim P As Range, c As Range
Feuil1.Activate 'CodeName de la feuille "Saisies"
With Feuil3 'CodeName de la feuille "Param"
  If [H3] = "MIDI" And [H4] = .[F2] Then [B5:F65536].Clear 'RAZ
  On Error Resume Next
  Set P = [I5:I24].SpecialCells(xlCellTypeConstants, 1)
  If Err = 0 Then
    Set c = IIf([H3] = "MIDI", [B65536], [E65536]).End(xlUp)(2)
    [H4].Copy c
    Set P = Intersect(P.EntireRow, [H:I])
    P.Copy c(2)
    c(2).Resize(P.Count / 2, 2).Borders(xlEdgeBottom).Weight = xlThin
  End If
  Set c = Nothing
  Set c = .[F:F].Find([H3], LookIn:=xlValues)
  Set c = .Cells(c.Row, "F").Resize(65537 - c.Row).Find([H4])(2)
  If c = "" Then Set c = .[F1]
  If c = "MIDI" Or c = "SOIR" Then [H3] = c: Set c = c(2)
  [H4] = c
End With
End Sub
A+
 

Pièces jointes

Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Re, le forum, bonjour à toutes et à tous,

Je sollicite, à nouveau votre aide, pour une petite amélioration sur mon projet.
Le travail de job75 fonctionne parfaitement, mais je voudrais savoir si la modif demandée est faisable...?

voir fichier joint

Merci pour le temps que vous voudrez bien vouloir m'accorder.

Bien amicalement,
Chrsitian
 

Pièces jointes

Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Bonjour Christian,

J'ai fait ça un peu rapidement car pas trop le temps :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [I5:I24]) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target(1, 0) = "" Then Exit Sub
Dim r As Range, v
For Each r In [I5:I24]
  If Application.CountIf(Feuil3.[I:I], r(1, 0)) = 0 Then v = v + r
Next
Set r = Feuil3.[I:I].Find(Target(1, 0), , xlValues)
If r Is Nothing Then v = Val([I1]) - v Else: v = r(1, 2)
If Target = "" And v > 0 Then Target = v
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [I5:I24]) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
Dim r As Range, v
For Each r In [I5:I24]
  If Application.CountIf(Feuil3.[I:I], r(1, 0)) = 0 Then v = v + r
Next
Set r = Feuil3.[I:I].Find(Target(1, 0), , xlValues)
If r Is Nothing Then v = Val([I1]) - v Else: v = r(1, 2)
If Target(1, 0) = "" Then Target = "" Else _
If Val(Target) <= 0 Or v < 0 Then Target = "": Target.Select
End Sub
Merci de vérifier que c'est bon dans tous les cas.

Fichier joint.

A+
 

Pièces jointes

Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Re, bonjour le forum, job75,

Merci pour ton aide si précieuse.

Après essais ça fonctionne correctement, en mettant bien, sur le ou les plats déclarés dans tableau feuille "Param", la quantité max autorisée, mais il est possible de taper un chiffre supérieur....peux-tu faire en sorte d'interdir une qté supérieure?.

Merci pour le temps que tu m'accordes.

A te lire...
Bien à toi,

Christian
 
Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

mais il est possible de taper un chiffre supérieur....

Oui bien vu Christian :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [I5:I24]) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
Dim r As Range, v
For Each r In [I5:I24]
  If Application.CountIf(Feuil3.[I:I], r(1, 0)) = 0 Then v = v + Val(r)
Next
Set r = Feuil3.[I:I].Find(Target(1, 0), , xlValues)
If r Is Nothing Then
  v = Val([I1]) - v
Else
  v = r(1, 2)
  If Target > v Then Target = v
End If
If Target(1, 0) = "" Then Target = "" Else _
If Val(Target) <= 0 Or v < 0 Then Target = "": Target.Select
End Sub
Fichier (2).

Edit : il fallait Val(r) pour éviter le bug avec des valeurs textes...

A+
 

Pièces jointes

Dernière édition:
Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Re,

La macro beuguait si l'on entrait du texte en I5:I24...

J'édite le post #7 avec :

If Application.CountIf(Feuil3.[I:I], r(1, 0)) = 0 Then v = v + Val(r)

A+
 
Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Re, le forum, job75,

Oups, pas vu post 9

Ok j'ai appliqué ta correction.

Dis-moi, job75, comment faire pour imprimer automatiquement la zone déclarée (B1:F50) si H3=Midi et si H4=Entrées et si le total des plats du soir est sup à 0. (autrement dit avant de resaisir sur une autre date..)

Merci pour tout,

Salut l'artiste.

Christian
 
Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Bonjour Christian,

Pour l'impression des colonnes B:F, remplace dans la macro Valider :

Code:
If c = "" Then Set c = .[F1]
par :

Code:
If c = "" Then
  Set c = .[F1]
  If Val([K10]) Then [B:F].PrintOut
End If
La Mise en page doit être sur 1 page en hauteur.

A+
 
Dernière édition:
Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Re,

Mais c'est peut-être plutôt ceci :

Code:
If c = "" Then
   Set c = .[F1]
   If Application.Sum([F5:F65536]) Then [B:F].PrintOut
 End If
A+
 
Dernière édition:
Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Re, le forum,

Bonjour à tout le forum,

Me revoila avec cette appli....j'ai une petite question ;

-comment faire pour que la macro "Valide" (de job75) ne copie que les valeurs et non les formules...

voir fichier joint...

Merci, à nouveau, pour votre aide si précieuse.

Bien à vous.
Christian
 

Pièces jointes

Re : Macro pour placer des saisies sur même feuille, si H3 égal Midi colonnes ...

Bonjour Christian, le forum,

Je n'avais pas vu que vous aviez mis des Select et autre Selection dans ma macro Valider.

Horreur et putréfaction 😡 virez-moi ça et on pourra continuer proprement.

A+
 
- 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

Discussions similaires

Retour