Aide Macro Excel
Résolu
kaiser4
Messages postés
111
Statut
Membre
-
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
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:
- Aide Macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
7 réponses
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.
Expliques nous un peu plus ton problème.
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
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
/!\ 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)