Macro if range
Résolu
tactac2
-
tactac2 -
tactac2 -
Bonsoir je veux créer une feuille de calcul qui me permettrait de gérer un stock avec une colonne entrée , une colonne sortie et une colonne stock. Afin d'attirer l'attention j'ai créer une macro qui me lance une impression si un de mes articles en stock est inférieur à 5.
Mon soucis est que je n'arrive pas à faire ce test sur une plage complète de ma colonne "D" mais cellules par cellules ce qui risque d'être long à écrire. Quelqu'un peut il m'expliquer la marche à suivre
Merci d'avance
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("D2").Value < 5 Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.Goto Reference:="Macro2"
End If
If Range("D3").Value < 5 Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.Goto Reference:="Macro2"
End If
If Range("D4").Value < 5 Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.Goto Reference:="Macro2"
End If
End Sub
A voir également:
- Macro if range
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir chiffre en lettre excel sans macro ✓ - Forum Excel
- Excel récupérer couleur cellule sans macro ✓ - Forum Bureautique
4 réponses
bonjour,
sans boucler
:-x
sans boucler
If Application.Min(Range("D2:D4")) < 5 Then ThisWorkbook.ActiveSheet.PrintOut 1 Application.Goto Reference:="Macro2" end if
:-x
Bonjour,
Tu peux écrire ton code sous la forme :
Par contre, je pense qu'il faudra que tu règles les paramètres de PrintOut pour ne pas avoir trop de pages.
Tu peux écrire ton code sous la forme :
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim cellule As Range For Each cellule In Range("D2:D4") If cellule.Value < 5 Then ActiveWindow.SelectedSheets.PrintOut Copies:=1 Application.Goto Reference:="Macro2" End If Next cellule End Sub
Par contre, je pense qu'il faudra que tu règles les paramètres de PrintOut pour ne pas avoir trop de pages.
Bonjour,
en m'inspirant de ce que Gord121 a écrit, je ferais plutôt :
Car il faut que ton impression se lance au moment ou tu as AU MOINS un stock inférieur à 5.
Ce mec la n'était pas une lumière, car il était niais.
en m'inspirant de ce que Gord121 a écrit, je ferais plutôt :
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim cellule As Range Dim compte As String compte = 0 For Each cellule In Range("D2:D4") If cellule.Value < 5 Then compte = compte +1 End If Next cellule If compte > 0 Then ActiveWindow.SelectedSheets.PrintOut Copies:=1 Application.Goto Reference:="Macro2" End If End Sub
Car il faut que ton impression se lance au moment ou tu as AU MOINS un stock inférieur à 5.
Ce mec la n'était pas une lumière, car il était niais.