Continuer la lecture d'une macro même si valeur non trouvée (cells.find)

  • Initiateur de la discussion Initiateur de la discussion lenaick
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lenaick

XLDnaute Nouveau
Bonjour à tous,

Je suis encore confronté à un problème, très évidemment lié à mon manque de connaissance, d'où ma question auprès de vous ce midi :

J'ai élaboré une macro, afin de modifier un tableau que j'exporte dans un format exploitable pour moi.

Une des étapes consiste à trouver une cellule et écrire des formules dans les cellules adjacentes. Grâce à l'enregistreur de Macro et un petit travail sur les formules (en partie grâce au forum d'ailleurs !), j'obtiens le résultat suivant :



Cells.Find(What:="Non affecté", After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-1]C)-SUMIF(R2C[-2]:R[-1]C[-2],""Total"",R2C:R[-1]C)*2"
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-1]C)-SUMIF(R2C[-2]:R[-1]C[-2],""Total"",R2C:R[-1]C)*2"
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-1]C)-SUMIF(R2C[-2]:R[-1]C[-2],""Total"",R2C:R[-1]C)*2"
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-1]C)-SUMIF(R2C[-2]:R[-1]C[-2],""Total"",R2C:R[-1]C)*2"
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-1]C)-SUMIF(R2C[-2]:R[-1]C[-2],""Total"",R2C:R[-1]C)*2"
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-1]C)-SUMIF(R2C[-2]:R[-1]C[-2],""Total"",R2C:R[-1]C)*2"
Selection.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-1]C)-SUMIF(R2C[-2]:R[-1]C[-2],""Total"",R2C:R[-1]C)*2"

Mon problème est que la valeur que je recherche ne figure pas systématiquement dans le tableau que j'exporte.

Et dans ce cas précis, la macro bloque puisqu'elle ne trouve pas la valeur cherchée.

Existe-t-il un moyen de continuer la lecture de la macro même si la valeur recherchée n'est pas présente dans la feuille ?

D'avance merci pour vos réponses.

Bon après-midi à tous...
 
Re : Continuer la lecture d'une macro même si valeur non trouvée (cells.find)

bonjour,
ajoute avant ton instruction Cells.Find l'instruction On Error GoTo suite et mets une étiquette suite: où tu vas décrire alors le traitement à effectuer si la valeur n'est pas trouvée;
bonne journée
 
Re : Continuer la lecture d'une macro même si valeur non trouvée (cells.find)

Bonsour ®

selon l'aide en ligne pour l'intruction "FindNext" :
ms-help://MS.EXCEL.DEV.12.1036/EXCEL.DEV/content/HV10035848.htm
copier ce lien dans la barre de commande de votre browser

With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
' exécuter instruction...
' exécuter autre instruction...
' etc...
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

- si pas trouvé sortir de la boucle
- si trouvé il faut mémoriser la 1ere adresse trouvée puis refaire une boucle
- si retour sur la 1ére adresse sortir de la boucle
 
Dernière édition:
Re : Continuer la lecture d'une macro même si valeur non trouvée (cells.find)

Bonjour.
Information, inspirée du code indiqué, parcouru en diagonal :
Utiliser SOUS.TOTAL(9, au lieu de SOMME(.
Cette fonction à en effet la propriété de ne pas tenir compte, dans son calcul, des valeurs déjà précédemment obtenues par elle.

Exemple :
VB:
c.Offset(, 1).Resize(, 7).FormulaR1C1 = "=SUBTOTAL(9,R2C:R[-1]C)"

Remarque: le "c" est celui de Modeste Geedee que je salue.
 
Dernière édition:
Re : Continuer la lecture d'une macro même si valeur non trouvée (cells.find)

Merci à tous pour vos réponses.

Compte tenu de ma modeste connaissance, j'ai opté pour la première solution qui rempli à merveille son office.

Que serions nous sans vous ?!!

Encore merci, et à très bientôt, j'en suis convaincu...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
Réponses
22
Affichages
3 K
Réponses
1
Affichages
1 K
Retour