Aide Macro Excel

Résolu
kaiser4 Messages postés 111 Statut Membre -  
kaiser4 Messages postés 111 Statut Membre -
Bonjour,

Grâce à l'aide de ce forum, j'ai réussi à créer une macro. (En fait j'ai pratiquement rien fait, Merci à Cel92 et à Wilfried_42)

Cependant, mon soucis est que lorsque la cellule recherchée est vide, une message box apparaît pour me dire que la cellule est vide (jusque là tout va bien), mais la macro s'arrête.

Ce qui veut dire que si par malchance la première cellule recherchée est vide, alors mon document reste vierge ( bref la macro ne sert à rien).

J'aimerais que l'on me dise quel est le moyen de contourner ce problème.
(A mon avis, c'est le Exit Sub qui pos soucis.)

Merci A+.

Voici la macro: ( je l'ai réduite à deux recherches de cellule pour l'exemple, mais en réalité, il y en a un dizaine).




Sub recup_text()



Dim chemin As String
chemin = ThisWorkbook.Path & "\"

Dim classeur2 As String

classeur2 = "ViewPage.xls"

Workbooks.Open Filename:=chemin & classeur2, ReadOnly:=True




'************************************************************************************************
'NATURE
'************************************************************************************************

'************************************************************************************************
'Recherche
Dim cellule_nature As Range
Set cellule_nature = Workbooks(classeur2).Worksheets("Sheet1").Columns("A:Z").Find("Nature")

If cellule_nature Is Nothing Then
MsgBox "L'onglet 'Sheet1' du fichier ViewPage.xls ne contient pas de cellule contenant 'Nature'."
Exit Sub
End If

'************************************************************************************************
'Recherche cellule à droite
Dim texte_Droite_nature As String
texte_Droite_nature = cellule_nature.Offset(0, 1).Value


'************************************************************************************************
'Ecrire
ThisWorkbook.Sheets("Feuil1").Range("K14").Value = texte_Droite_nature



'************************************************************************************************
'EMPLACEMENT
'************************************************************************************************

'************************************************************************************************
'Recherche

Dim cellule_emplacement As Range
Set cellule_emplacement = Workbooks(classeur2).Worksheets("Sheet1").Columns("A:Z").Find("Emplacement")

If cellule_emplacement Is Nothing Then
MsgBox "L'onglet 'Sheet1' du fichier ViewPage.xls ne contient pas de cellule contenant 'Emplacement'."
Exit Sub
End If


'************************************************************************************************
'Recherche cellule à droite
Dim texte_Droite_emplacement As String
texte_Droite_emplacement = cellule_emplacement.Offset(0, 1).Value



'************************************************************************************************
'Ecrire
ThisWorkbook.Sheets("Feuil1").Range("K8").Value = texte_Droite_emplacement


End sub
A voir également:

7 réponses

RailBird
 
Bin c'est à peu près normal que la macro s'arrête vu que tu sors de la boucle par un exit.
Expliques nous un peu plus ton problème.
0
RailBird
 
Essayes avec des On Error Resume Next, cela sert que si, le programme rencontre une erreur, il continue sinon essayes de travailler avec des Else pour compléter tes fonctions If
0
kaiser4 Messages postés 111 Statut Membre 2
 
un petit coup de main SVP.

Merci
A+.
-1
jjk
 
A mon avis, il te suffit de supprimer les lignes "Exit Sub", ce qui permettrait à la macro de continuer si elle ne trouve pas la chaine recherchée.
Mais à vrai dire je ne comprends pas bien ce que tu voudrais faire par la macro. Peux-tu expliquer plus ?
0
kaiser4 Messages postés 111 Statut Membre 2
 
Bonjour,

En fait la macro à pour but de recupérer des infos dans une cellule d' un fichier puis de les recopier dans d'autre cellule d' un autre fichier.

Mais lorsque la premiere cellule recherché est vide, la macro s'arrête.

J'ai déjà essayé de supprimer le "exit Sub" mais dans ce cas là, un message d'erreur s'affiche "erreur d"éxécution 91, Variable objet ou objet de bloc With non définie".

Aidez-moi SVP ( je suis sur ce problème depuis ce matin).

Merci.

A+
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kaiser4 Messages postés 111 Statut Membre 2
 
Merci RailBird, en effet, avec On Error Resume Next, je n'ai plus de soucis.

Encore Merci

A+.
-1
Polux31 Messages postés 7219 Statut Membre 1 204
 
Bonjour,

/!\ Attention, On Error Resume Next, empêche le programme de planter et évite d'afficher un message d'erreur système. Néanmoins, l'erreur existe quand même et persiste. Vouloir règler un problème en utilisant On Error Resume Next et ne pas gérer l'erreur peut conduire à des disfonctionnements de l'appli, sans savoir d'où cela provient.

;o)
-1
kaiser4 Messages postés 111 Statut Membre 2
 
Merci de ta précision, cependant, dans mon cas, On Error Resume Next empêche la macro de buter sur l'erreur et permet à la macro de continuer son travail.

ce qui pour ce que je veux faire, me convient très bien.

Merci.

A+.
-1