Bonjour le forum,
Je fais appel à vos compétences pour résoudre un problème que je rencontre dans une macro Excel.
J'ai fait un copier-coller d'une macro vers un autre classeur. Or, si elle fonctionne très bien dans le premier, j'ai une erreur "l'indice n'appartient pas à la sélection" dans le second classeur.
En fait, il s'agit d'envoyer des fichiers par mail et l'erreur apparaît lors de la définition du nom du fichier qui sera joint (en fait, dès la ligne : Fichier = Sheets("Fiche anomalie").[E1].Value & ".xlsx").
Voici mon code :
La feuille en question s'appelle bien "Fiche anomalie" et le classeur a pour nom la valeur de la cellule E1.
Quelqu'un aurait-il une idée ?
Merci d'avance.
Cordialement.
Je fais appel à vos compétences pour résoudre un problème que je rencontre dans une macro Excel.
J'ai fait un copier-coller d'une macro vers un autre classeur. Or, si elle fonctionne très bien dans le premier, j'ai une erreur "l'indice n'appartient pas à la sélection" dans le second classeur.
En fait, il s'agit d'envoyer des fichiers par mail et l'erreur apparaît lors de la définition du nom du fichier qui sera joint (en fait, dès la ligne : Fichier = Sheets("Fiche anomalie").[E1].Value & ".xlsx").
Voici mon code :
Code:
Sub validerlaSaisie()
'
Dim chemin, Repertoire, Fichier, destinataire1, destinataire2, destinataire3, destinataire4, destinataire5, cc, body, sujet, strcommand, fichierjoint As String, Rep As Integer
chemin = "G:\XXXX\YYY\ZZZ\AAA\BBB\CCC\"
Fichier = Sheets("Fiche anomalie").[E1].Value & ".xlsx"
'Repertoire = Range("A7").Value & "\"
destinataire1 = "didi.kabe@moi.fr"
destinataire2 = "papa.meme@moi.fr "
destinataire3 = "xaxa.bibi@moi.fr"
destinataire4 = "pepe.ruru@moi.fr"
destinataire5 = "caca.baba@moi.fr "
cc = "controle@moi.fr"
fichierjoint = chemin & Fichier
Sheets("Saisie").Select
Range("E1").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A1].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("A7").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A6].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("B7").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A6].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("E6").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [D6].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("E7").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [D7].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("B11").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A11].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("E11").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [D11].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("B13").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A13].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("E13").Select
If [B13].Value = "Agent" Then
If ActiveCell = "" Then
MsgBox ("La saisie de " & [D13].Value & " n'est pas renseignée !")
Exit Sub
End If
End If
Range("B15").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A15].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("E15").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [D15].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("B20").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A20].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("E20").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [D20].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("B22").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A22].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("E22").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [D22].Value & " n'est pas renseignée !")
Exit Sub
End If
Range("A26").Select
If ActiveCell = "" Then
MsgBox ("La Saisie de : " & [A25].Value & " n'est pas renseignée !")
Exit Sub
End If
Application.EnableEvents = True
Sheets("Saisie").Unprotect Password:="DAC081"
Sheets("Base").Visible = True
Sheets("Base").Unprotect Password:="DAC081"
Sheets("Saisie").Range("i6:bb6").Copy
With Sheets("Base")
.Rows(8).Insert
With .Range("A8")
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
End With
Sheets("Base").Select
Range("A8:A2000").Select
Range("A8:Z2000").Sort Key1:=Range("A8"), Order1:=xlAscending, Key2:=Range( _
"B8"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
ActiveSheet.Protect
Application.CutCopyMode = False
Sheets("Saisie").Select
Range("A1:E44").Copy
Worksheets.Add.Name = "Fiche anomalie"
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
ActiveSheet.Shapes.Range(Array("Rectangle 56", "Rectangle 65")).Select
Selection.Delete
Sheets("Fiche anomalie").Select
Sheets("Fiche anomalie").Copy
Range("A2").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.SaveAs Filename:=chemin & [E1].Value & ".xlsx"
Sheets("Fiche anomalie").Select
Rep = MsgBox("Voulez-vous envoyer la présente fiche anomalie par courrier électronique ?", vbYesNo + vbQuestion, "Le programme demande votre attention")
If Rep = vbNo Then
Exit Sub
Else
Application.DisplayAlerts = False
If [A7].Value = "PN" Then
sujet = "Fiche anomalie "
body = "<HTML><BODY>Bonjour" & "," & "<br>" & "<br>" & "Nous vous prions de trouver ci-joint" & ", " & _
"une fiche anomalie concernant la saisie d'un agent de votre service." & _
" Nous vous remercions de lui transmettre ladite fiche et de lui demander de régulariser le dossier dans les meilleurs délais." & _
"<br>" & "<br>" & "<br>" & "Bien cordialement." & "<br>" & "<br>" & "<br>" & "<br>" & "Le Service Contrôle.</BODY></HTML>"
strcommand = "C:\Program Files\Mozilla Thunderbird\thunderbird"
strcommand = strcommand & " -compose " & "to='" & destinataire1 & "'"
strcommand = strcommand & "," & "cc='" & cc & "'"
strcommand = strcommand & "," & "subject='" & sujet & "',format='1',"
strcommand = strcommand & "body='" & body & "'"
strcommand = strcommand & "," & "attachment='file:///" & ActiveWorkbook & "'"
Call Shell(strcommand, vbNormalFocus)
End If
[…]
La feuille en question s'appelle bien "Fiche anomalie" et le classeur a pour nom la valeur de la cellule E1.
Quelqu'un aurait-il une idée ?
Merci d'avance.
Cordialement.