On Error GoTo label_1 Open DocAbsent for Binary as #number Open DocAbsent2 for Binary as #number2 '... label_1: MsgBox "Document n'existe pas...", vbOkOnly,"Crétin" Resume next End Function
On Error Resume Next '...'ignorons ici toutes les préventions possible qu'on peut y mettre. 'Ce n'est pas encore le but. CommonDialog1.CancelError = True ShowOpen FaireManip CommonDialog1.Filename
Public Function Appelée() as Long On Error GoTo label2 Call FonctionQuiPlante '.... Exit function label2: ' Si nécessaire quelque code de nettoyage Call RamasseToi Appelée = Err.Number End Function
Public Function GetFile(byval strDefaultFile as string) as string On Error Resume Next 'ligne nécessaire à cause de CancelError = True With CommonDialog1 .Flags = cdlOFNFileMustExist ' l'usager est forcé de sélectionner un document existant .Filter ="Text (*.txt)|*.txt" ' l'usager est forcé de sélectionner un doc 'txt' .FilterIndex = 1 ' ...et rien d'autre. noter l'extension est montrée à l'usager .Filename = strDefaultFile ' Facultatif mais bon enfin... .DialogTitle = "Choisi, mec !" .CancelError = True ' le coeur de l'affaire: en cas de cancel, une erreur est générée. .ShowOpen End With If Err.Number = 0 then ' il n'y a qu'une erreur possible ici GetFile CommonDialog1.FileName ' passer le nom. Sinon, GetFile "" End If End Function
'.... On Error Resume Next '... Set ExcelObject = GetObject(paramètres) ' Si Excel est déjà ouvert cette méthode le trouvera ' Sinon, deux facon de déceler l'erreur: If ExcelObject Is Nothing then ' mais cette méthode n'illustre pas l'exemple If Err.Number <>0 then Err.Clear ' sinon la seconde partie sera déjà dans l'erreur Set ExcelObject = CreateObject(paramètres) If Err.Number <>0 then ' capturer cette erreur nouvelle FunctionName = Err.Number ' avertir la fonction appelante Exit Function ' Err est locale ici donc nul besoin de faire un reset End If Err.Clear ' ici on continue
On Error Resume Next If Err.Number <>0 then FunctionCalled = err.Number Exit Function End If If IsMediumPresent(Path) = err_NOMEDIUM then FunctionName = err_NOMEDIUM Exit Function Else If IsMediumUnLocked(Path) = err_MEDIUMLOCKED then FunctionName = err_MEDIUMLOCKED Exit Function Else If IsMediumHasSpace(DocSize) = err_INSUFFICIENTSPACE then FunctionName = err_INSUFFICIENTSPACE Exit Function ' Si ces trois conditions sont satisfaites, le code continue après le block Endif End If Endif
Err.Clear On Error Resume Next Select Case CreateDoc(strFilename) Case err_DOCEXIST ' demander un autre nom ou changer le nom du doc et informer l'usager Case err_DOCACCESSERROR ' le doc est ReadOnly: unlock ou informer l'usager Case err_DOCWRITEERROR ' Faut voir la cause exacte de l'erreur Case err_GENERICERROR ' alors la c'était vraiment pas prévu comme type d'erreur mais on reste dans le possible Case er_NOERROR ' mettre une continuation pour la function If WriteAllToDoc(strFilename) <> err_NOERROR Then GoTo label 'ici GoTo vaux la peine! Case Else ' ici c'est le délire...mais écrire dans un log d'erreur pourrait être une bonne idée. ' Caractères inconnus, valeurs invalide, ça peut être vraiment n'importe quoi. End Select label: ' réparation et contrôle des dommages
Public Const err_NOERROR as Long = 0 Public Const err_DOCEXIST as Long = 64 ' rien n'interdit d'utiliser les codes d'erreur de VB Public Const err_DOCACCESSERROR as Long = 98
Public Const err_FlAGNONAME as Long= &H1 Public Const err_FlAGNOPASSWORD as Long= &H2 Public Const err_FlAGNOGROUP as Long= &H4 Public Const err_FlAGNOPERMISSION as Long= &H8
If IsMediumUnLocked(docName)= False then ' erreur qui bloque tout Else ' on continue ... ' D'autres conditions complexes suivent End If
If DocExist(docName) = true then If DocNotLocked(docName) then ' faire la chose.... End If End If ' rien d'autre à faire
Avis de décès, Carte de voeux, Bricolage, Coloriages, Cinéma, Coiffure, Cuisine, Déco, Dictionnaire, Horoscope, Jeux en ligne, Programme TV, Recettes, Restaurant, SMIC, Test débit, Voyage, Signification prénom