Sauvegarde sous condition
Bonjour le forum,
se code me permet de sauvegarder la feuille Result Avec Cellules renseignées je voudrais bloquer la sauvegarde si les cells (4,10 et 4,11) n'est pas renseignée et que la cellules K4 soit colorie,
(4, 11 = K4 )
(4,10 = J4 )
Sub ImpGroupes()
' Macro export en PDF avec nom variable selon contenu cellule.
MsgBox ThisWorkbook.Path & "\" & Sheets("Result").Cells(4, 10).Value & " " & Sheets("Result").Cells(4, 11).Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Sheets("Result").Cells(4, 10).Value & " " & Sheets("Result").Cells(4, 11).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveWindow.SelectedSheets.PrintPreview
Range("K1").Select
End Sub
merci d'avance jean claude
Bonsoir Ferdinand, bonsoir le forum,
Peut-être comme ça :
Sub ImpGroupes()
Dim O As Worksheet
Set O = Worksheets("Result")
If O.Cells(4, 10).Value = "" Or O.Cells(4, 11).Value = "" Then Exit Sub
If O.Cells(4, 11).Interior.ColorIndex <> xlNone Then Exit Sub
' Macro export en PDF avec nom variable selon contenu cellule.
MsgBox ThisWorkbook.Path & "\" & Sheets("Result").Cells(4, 10).Value & " " & Sheets("Result").Cells(4, 11).Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Sheets("Result").Cells(4, 10).Value & " " & Sheets("Result").Cells(4, 11).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveWindow.SelectedSheets.PrintPreview
Range("K1").Select
End Sub
bonsoir ThauThème et le forum
merci de ta réponse,
Set O = Worksheets("Result")
If O.Cells(4, 10).Value = "" Or O.Cells(4, 11).Value = "" Then Exit Sub
If O.Cells(4, 11).Interior.ColorIndex <> xlNone Then Exit Sub
mais cela ne fonctionne pas (pas de mesg d'erreur)
a+ jean claude
Bonsoir ThauThème et le forum
Après mainte essai et recherche ce code fonctionne
Sub ImpGroupes()
If Range("K4") = "" Then
MsgBox "Renseigner le groupe en K4 avant de sauvegarder Merci !", vbExclamation
Range("K4").Interior.ColorIndex = 3
Exit Sub
End If
' Macro export en PDF avec nom variable selon contenu cellule.
MsgBox ThisWorkbook.Path & "\" & Sheets("Result").Cells(3, 11).Value & " " & Sheets("Result").Cells(4, 11).Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Sheets("Result").Cells(3, 11).Value & " " & Sheets("Result").Cells(4, 11).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveWindow.SelectedSheets.PrintPreview
Range("K4").Interior.ColorIndex = 2 'couleur intérieure
Range("K4").Clear 'effacer cellule
With Range("K4").Borders 'couleur cellule
.Weight = xlMedium
Range("K4").Borders(xlInsideVertical).LineStyle = xlNone
Range("K4").Borders(xlInsideHorizontal).LineStyle = xlNone
End With
Range("K4").Select 'formatage cellule
Selection.Font.Size = 9
Selection.Font.Size = 10
Selection.Font.Size = 11
Selection.Font.Bold = True
Range("K4").Select
End Sub
Si le code peut être à améliorer je suis preneur merci,
***oui il reste à contrôler que le fichier existe déjà
bonne soirée à tous jean claude
Bonsoir,
Un test.
Sub ImpGroupes()
Dim c As Integer
Dim i As Integer
Dim Fichier As String
i = 0
Fichier = ThisWorkbook.Path & "\" & Cells(3, 11).Value & " " & Cells(4, 11).Value & ".pdf"
For c = 10 To 11
If Cells(4, c).Value = "" Then
Cells(4, c).Interior.ColorIndex = 3
i = 1
End If
Next c
If i = 1 Then
MsgBox ("Renseigner la cellule surlignée en rouge Merci !"), vbExclamation
Exit Sub
End If
If Dir(Fichier) <> "" Then
MsgBox ("Enregistrement déjà réalisé avec ces valeurs en J4 et K4, annulation de l'enregistrement")
Else: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Exit Sub
End If
With Range("J4:K4")
.ClearContents
End With
End Sub
Pourquoi as-tu tant de mise en forme en fin de code ?
Cordialement,
Bonjour Ergotamine et le forum,
merci de ta réponse cela fonctionne,
j'ai fait quelques modif pour effacer la case K4
je passerais le code demain des que je l'aurais finalisé pour ma présentation et le déroulé,
a+ jean claude
Pourquoi as-tu tant de mise en forme en fin de code ?
car je l'ai pris comme je le pensé pas très doué le papy,
Bonsoir,
Pas de soucis on a tous commencé par là a copier un code trouvé à droite à gauche.
N'hésites pas si tu as encore besoin.
Cordialement,
Bonjour Ergotamine et le forum,
Merci Ergotamine cela fonctionne,
je voudrais rajouter une fonction je m'entant que la feuille que j'enregistre aille dans
D:\FFME\FFME_2019\HIVERNALE_2019\FichesGroupes le chemin ce trouve dans la feuille ( Parametres en BC25) que je modifie chaque année,
Le code que tu ma joint,
Sub ImpGroupes() ' Sauvegarde en PDF et impression feuille GROUPE en PDF
Dim c As Integer
Dim i As Integer
Dim Fichier As String
Dim Dossier As String
'Dossier = Sheets("Parametres").Range("BC25") '= D:\FFME\FFME_2019\HIVERNALE_2019\FichesGroupes
i = 0
Fichier = ThisWorkbook.Path & "\" & Cells(6, 9).Value & " " & Cells(7, 9).Value & ".pdf"
For c = 9 To 9
If Cells(7, c).Value = "" Then
Cells(7, c).Interior.ColorIndex = 3 'Colorie la cellule I7
i = 1
End If
Next c
If i = 1 Then
MsgBox ("Renseigner la cellule surlignée en rouge Merci !"), vbExclamation
Exit Sub
End If
If Dir(Fichier) <> "" Then
MsgBox ("Enregistrement déjà réalisé avec cette valeur en I7.!!!," & vbCrLf & "" & vbCrLf & "Annulation de l'enregistrement," & vbCrLf & "" & vbCrLf & "Priére de saisir le bon N° du groupe ou la catégorie .!!!,")
With Range("I7")
.ClearContents 'Efface la cellule I7 après verification du fichier
End With
Else: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
'ActiveWindow.SelectedSheets.PrintPreview ' pour l'instant en Vue
With Range("I7")
.ClearContents 'Efface la cellule K4 après enregistrement
End With
Exit Sub
End If
End Sub
Merci à vous tous et bonne soirée
jean claude
Bonsoir,
Comme ça ?
Sub ImpGroupes() ' Sauvegarde en PDF et impression feuille GROUPE en PDF
Dim c As Integer
Dim i As Integer
Dim Fichier As String
Dim Dossier As String
Dossier = Sheets("Parametres").Range("BC25").Value
i = 0
Fichier = Dossier & "\" & Cells(6, 9).Value & " " & Cells(7, 9).Value & ".pdf"
For c = 9 To 9
If Cells(7, c).Value = "" Then
Cells(7, c).Interior.ColorIndex = 3 'Colorie la cellule I7
i = 1
End If
Next c
If i = 1 Then
MsgBox ("Renseigner la cellule surlignée en rouge Merci !"), vbExclamation
Exit Sub
End If
If Dir(Fichier) <> "" Then
MsgBox ("Enregistrement déjà réalisé avec cette valeur en I7.!!!," & vbCrLf & "" & vbCrLf & "Annulation de l'enregistrement," & vbCrLf & "" & vbCrLf & "Priére de saisir le bon N° du groupe ou la catégorie .!!!,")
With Range("I7")
.ClearContents 'Efface la cellule I7 après verification du fichier
End With
Else: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
'ActiveWindow.SelectedSheets.PrintPreview ' pour l'instant en Vue
With Range("I7")
.ClearContents 'Efface la cellule K4 après enregistrement
End With
Exit Sub
End If
End Sub
Re Ergotamine
je te re merci cela fonctionne,
bonne soirée Jean claude