yannick64
XLDnaute Junior
Bonjour à tous
Dans une macro j’aimerai, après vérification que certains champs ne sont pas complétés, faire un GoTo vers une étiquette pour éviter tout une partie de la macro et aller directement à la fin. (il parait qu'il faut éviter... mais c'est ce qui à l'air le plus simple dans mon cas)
J'ai mis en place le GoTo mais j'ai du faire une erreur car il ne marche pas, pas de message d'erreur😕
Apparemment il faut utiliser des "If - End If" mais comment les imbriquer, est ce possible?
Voici le code :
Merci pour votre aide😉
Dans une macro j’aimerai, après vérification que certains champs ne sont pas complétés, faire un GoTo vers une étiquette pour éviter tout une partie de la macro et aller directement à la fin. (il parait qu'il faut éviter... mais c'est ce qui à l'air le plus simple dans mon cas)
J'ai mis en place le GoTo mais j'ai du faire une erreur car il ne marche pas, pas de message d'erreur😕
Apparemment il faut utiliser des "If - End If" mais comment les imbriquer, est ce possible?
Voici le code :
Code:
Sub MasquerLignesColonnes()
' Macro enregistrée le 09/01/2012 par Yannick
'Boite de dialogue
Rep = MsgBox("Avez vous complété l'ensemble des informations requises? Voulez-vous éditer les certificats ?", vbYesNo + vbQuestion, "LP CHAMPO - Information !")
If Rep = vbYes Then
If Range("g13").Value = "" Then
MsgBox "Saisie obligatoire de la filière"
Else
'non vide...
End If
If Range("g14").Value = "" Then
MsgBox "Saisie obligatoire de l'option"
Else
GoTo etiquette
End If
'Ouverture de la base de données
Workbooks.Open Filename:= _
"D:\Mes documents\Lycée\Europe\Evaluations informatisées\C_A.xls"
Windows("Evaluation Espagne.xls").Activate
Sheets("FC").Select
Rows("2:21").Select
Selection.Copy
Windows("C_A.xls").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("C_A.xls").Activate
Dim i%
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Not InStr(1, LCase(Cells(i, 1).Value), "0") = 0 Then
Rows(i).Delete
End If
Next i
Windows("Evaluation Espagne.xls").Activate
'Edition des fiches
'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
Dim docWord As Word.Document
Dim appWord As Word.Application
Dim NomBase As String
NomBase = "D:\Mes documents\Lycée\Europe\Evaluations informatisées\C_A.xls"
Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
'Ouverture du document principal Word
Set docWord = appWord.Documents.Open("D:\Mes documents\Lycée\Europe\Evaluations informatisées\c_a.doc")
'fonctionnalité de publipostage pour le document spécifié
With docWord.MailMerge
'Ouvre la base de données
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Fichier Excel via ODBC (*.xls)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [FC$]"
'Spécifie la fusion vers l'imprimante
.Destination = wdSendToPrinter
.SuppressBlankLines = True
'Prend en compte l'ensemble des enregistrements
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
'Exécute l'opération de publipostage
.Execute Pause:=False
End With
Application.ScreenUpdating = True
'Fermeture du document Word
docWord.Close False
appWord.Quit
'Fermeture de la base de données
Windows("C_A.xls").Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=False
Application.DisplayAlerts = True
'Enregistrer le document
Sheets("Apreciaciones").Select
ActiveWorkbook.SaveAs Filename:="Evaluation" & " " & [f7].Value & ".xls"
'Masquer les lignes et colonnes
Columns("N:N").Select
Range("N115").Activate
Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireColumn.Hidden = True
Rows("125:125").Select
Range("C125").Activate
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Hidden = True
ActiveWindow.SmallScroll Down:=-129
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Sheets("FC").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("Apreciaciones").Select
Range("F8").Select
etiquette:
'Boite d'info
Else
MsgBox "Complétez les informations et relancez l'édition des certificats", vbOKOnly + vbInformation, "LP CHAMPO - Information !"
End If
End Sub
Merci pour votre aide😉