Bonjour à tous,
Pour enregistrer facilement des classeurs avec le contenu de deux cellules
et un préfixe "fs ", j'utilise la macro suivante (trouvée à partir d'une
réponse dans ce forum)
Sub zaza()
On Error Resume Next
ChDrive "G"
ChDir "G:\Mes Documents\essais enregistrement\"
Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls")
If Err.Number <> 0 Then MsgBox Error(Err)
End Sub
Comment mettre un message d'erreur blocant la procédure si les cellule B3 et
B5 sont vides.
Merci à vous
Christian
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Tu copies ce qui suit dans un module standard :
La fonction t'assure que les caractères du nom sont acceptés. Tu dois adapter le nom de la feuille dans la procédure.
'------------------------------- Sub zaza()
On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" With ThisWorkbook With .Worksheets("Feuil1") ' Nom à adapter If .Range("B3") <> "" _ And Detect_Bad_Character(.Range("B3")) = True _ And .Range("B5") <> "" _ And Detect_Bad_Character(.Range("B5")) = True Then ThisWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") Else MsgBox "Un caractère interdit """"["", ""]"", """",""/""," & _ """?"", ""*"", "":""" & vbCrLf & _ "a été saisi en B3 ou B5 de la feuille " & .Name _ & vbCrLf & " ou une de ces cellules est vide.", _ vbCritical + vbOKOnly, "Attention" End If End With End With
End Sub '------------------------------- Function Detect_Bad_Character(rg As Range) As Boolean Dim X As Variant X = Array("[", "]", "", "/", "?", "*", ":") For Each elt In X If InStr(1, rg.Text, elt, vbTextCompare) <> 0 Then Detect_Bad_Character = False Exit Function End If Next Detect_Bad_Character = True End Function '-------------------------------
"Christian de BXL" a écrit dans le message de news:
Bonjour à tous, Pour enregistrer facilement des classeurs avec le contenu de deux cellules et un préfixe "fs ", j'utilise la macro suivante (trouvée à partir d'une réponse dans ce forum)
Sub zaza() On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") If Err.Number <> 0 Then MsgBox Error(Err) End Sub
Comment mettre un message d'erreur blocant la procédure si les cellule B3 et B5 sont vides. Merci à vous Christian
Tu copies ce qui suit dans un module standard :
La fonction t'assure que les caractères du nom sont acceptés.
Tu dois adapter le nom de la feuille dans la procédure.
'-------------------------------
Sub zaza()
On Error Resume Next
ChDrive "G"
ChDir "G:Mes Documentsessais enregistrement"
With ThisWorkbook
With .Worksheets("Feuil1") ' Nom à adapter
If .Range("B3") <> "" _
And Detect_Bad_Character(.Range("B3")) = True _
And .Range("B5") <> "" _
And Detect_Bad_Character(.Range("B5")) = True Then
ThisWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls")
Else
MsgBox "Un caractère interdit """"["", ""]"", """",""/""," & _
"""?"", ""*"", "":""" & vbCrLf & _
"a été saisi en B3 ou B5 de la feuille " & .Name _
& vbCrLf & " ou une de ces cellules est vide.", _
vbCritical + vbOKOnly, "Attention"
End If
End With
End With
End Sub
'-------------------------------
Function Detect_Bad_Character(rg As Range) As Boolean
Dim X As Variant
X = Array("[", "]", "", "/", "?", "*", ":")
For Each elt In X
If InStr(1, rg.Text, elt, vbTextCompare) <> 0 Then
Detect_Bad_Character = False
Exit Function
End If
Next
Detect_Bad_Character = True
End Function
'-------------------------------
"Christian de BXL" <ChristiandeBXL@discussions.microsoft.com> a écrit dans le message de news:
6C0039CB-210F-4915-BD82-696CDE4A18BB@microsoft.com...
Bonjour à tous,
Pour enregistrer facilement des classeurs avec le contenu de deux cellules
et un préfixe "fs ", j'utilise la macro suivante (trouvée à partir d'une
réponse dans ce forum)
Sub zaza()
On Error Resume Next
ChDrive "G"
ChDir "G:Mes Documentsessais enregistrement"
Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls")
If Err.Number <> 0 Then MsgBox Error(Err)
End Sub
Comment mettre un message d'erreur blocant la procédure si les cellule B3 et
B5 sont vides.
Merci à vous
Christian
La fonction t'assure que les caractères du nom sont acceptés. Tu dois adapter le nom de la feuille dans la procédure.
'------------------------------- Sub zaza()
On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" With ThisWorkbook With .Worksheets("Feuil1") ' Nom à adapter If .Range("B3") <> "" _ And Detect_Bad_Character(.Range("B3")) = True _ And .Range("B5") <> "" _ And Detect_Bad_Character(.Range("B5")) = True Then ThisWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") Else MsgBox "Un caractère interdit """"["", ""]"", """",""/""," & _ """?"", ""*"", "":""" & vbCrLf & _ "a été saisi en B3 ou B5 de la feuille " & .Name _ & vbCrLf & " ou une de ces cellules est vide.", _ vbCritical + vbOKOnly, "Attention" End If End With End With
End Sub '------------------------------- Function Detect_Bad_Character(rg As Range) As Boolean Dim X As Variant X = Array("[", "]", "", "/", "?", "*", ":") For Each elt In X If InStr(1, rg.Text, elt, vbTextCompare) <> 0 Then Detect_Bad_Character = False Exit Function End If Next Detect_Bad_Character = True End Function '-------------------------------
"Christian de BXL" a écrit dans le message de news:
Bonjour à tous, Pour enregistrer facilement des classeurs avec le contenu de deux cellules et un préfixe "fs ", j'utilise la macro suivante (trouvée à partir d'une réponse dans ce forum)
Sub zaza() On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") If Err.Number <> 0 Then MsgBox Error(Err) End Sub
Comment mettre un message d'erreur blocant la procédure si les cellule B3 et B5 sont vides. Merci à vous Christian
Ange Ounis
Perso, je commencerais par tester si les cellules B3 et B5 sont renseignées et sinon j'arrêterais tout après l'avoir signalé :
''''''''''''''''' Sub zaza() If Range("B3").Value = "" Or Range("B5").Value = "" Then MsgBox "Cellule(s) B3 et/ou B5 non renseigné(e)s." Exit Sub End If On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") If Err.Number <> 0 Then MsgBox Error(Err) End Sub '''''''''''''''''
---------- Ange Ounis ----------
Bonjour à tous, Pour enregistrer facilement des classeurs avec le contenu de deux cellules et un préfixe "fs ", j'utilise la macro suivante (trouvée à partir d'une réponse dans ce forum)
Sub zaza() On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") If Err.Number <> 0 Then MsgBox Error(Err) End Sub
Comment mettre un message d'erreur blocant la procédure si les cellule B3 et B5 sont vides. Merci à vous Christian
Perso, je commencerais par tester si les cellules B3 et B5 sont renseignées et
sinon j'arrêterais tout après l'avoir signalé :
'''''''''''''''''
Sub zaza()
If Range("B3").Value = "" Or Range("B5").Value = "" Then
MsgBox "Cellule(s) B3 et/ou B5 non renseigné(e)s."
Exit Sub
End If
On Error Resume Next
ChDrive "G"
ChDir "G:Mes Documentsessais enregistrement"
Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls")
If Err.Number <> 0 Then MsgBox Error(Err)
End Sub
'''''''''''''''''
----------
Ange Ounis
----------
Bonjour à tous,
Pour enregistrer facilement des classeurs avec le contenu de deux cellules
et un préfixe "fs ", j'utilise la macro suivante (trouvée à partir d'une
réponse dans ce forum)
Sub zaza()
On Error Resume Next
ChDrive "G"
ChDir "G:Mes Documentsessais enregistrement"
Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls")
If Err.Number <> 0 Then MsgBox Error(Err)
End Sub
Comment mettre un message d'erreur blocant la procédure si les cellule B3 et
B5 sont vides.
Merci à vous
Christian
Perso, je commencerais par tester si les cellules B3 et B5 sont renseignées et sinon j'arrêterais tout après l'avoir signalé :
''''''''''''''''' Sub zaza() If Range("B3").Value = "" Or Range("B5").Value = "" Then MsgBox "Cellule(s) B3 et/ou B5 non renseigné(e)s." Exit Sub End If On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") If Err.Number <> 0 Then MsgBox Error(Err) End Sub '''''''''''''''''
---------- Ange Ounis ----------
Bonjour à tous, Pour enregistrer facilement des classeurs avec le contenu de deux cellules et un préfixe "fs ", j'utilise la macro suivante (trouvée à partir d'une réponse dans ce forum)
Sub zaza() On Error Resume Next ChDrive "G" ChDir "G:Mes Documentsessais enregistrement" Application.ActiveWorkbook.SaveAs ("fs " & [B3] & " " & [B5] & ".xls") If Err.Number <> 0 Then MsgBox Error(Err) End Sub
Comment mettre un message d'erreur blocant la procédure si les cellule B3 et B5 sont vides. Merci à vous Christian