Fonction Sierreur en VBA

  • Initiateur de la discussion Initiateur de la discussion Pino12
  • 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 !

Pino12

XLDnaute Junior
Bonjour à tous,


Je souhaite insérer l'équivalent d'une fonction Sierreur dans le code ci-dessous afin que les fonctions VLOOKUP me renvoient "0" à la place du traditionnel #N/A.
Quelqu'un aurait-il une idée de comment s'y prendre ? 🙂

'Sub Ventes_et_stocks_test()

Dim f$, h&, c As Range, fich$
f = "Ventes et Stocks Magasins"
h = Application.Match("TOTAL", [C:C], 0) - 7 'la hauteur du tableau peut varier
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si des fichiers n'existent pas
For Each c In Range("E6", Cells(6, Columns.Count).End(xlToLeft))
If c = "Vtes" Then
fich = "Jeunesse S" & Val(Replace(c(0, 0), "Semaine", "")) & ".xlsx"
c(2).Resize(h) = "=VLOOKUP(RC1,'[" & fich & "]" & f & "'!R4C1:R20000C22,21,0)"
c(2, 2).Resize(h) = "=VLOOKUP(RC1,'[" & fich & "]" & f & "'!R4C1:R20000C22,22,0)"
End If
Next


'
End Sub


Merci d'avance pour vos réponses 🙂
 
Re : Fonction Sierreur en VBA

Bonjour Pino12, Dugenou,

Il s'agit du fichier de ce fil :

https://www.excel-downloads.com/threads/besoin-dun-coup-de-main-pour-une-macro.222896/

Code:
Sub Ventes_et_stocks_test()
Dim f$, h&, c As Range, fich$
f = "Ventes et Stocks Magasins"
h = Application.Match("TOTAL", [C:C], 0) - 7 'la hauteur du tableau peut varier
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si des fichiers n'existent pas
For Each c In Range("E6", Cells(6, Columns.Count).End(xlToLeft))
  If c = "Vtes" Then
    fich = "Jeunesse S" & Val(Replace(c(0, 0), "Semaine", "")) & ".xlsx"
    c(2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'[" & fich & "]" & f & "'!R4C1:R20000C22,21,0),0)"
    c(2, 2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'[" & fich & "]" & f & "'!R4C1:R20000C22,22,0),0)"
    c(2, 3).Resize(h + 1) = "=IFERROR(RC[-1]/RC[-2],0)"
  End If
Next
End Sub
Bien sûr SIERREUR n'existe qu'à partir d'Excel 2007...

A+
 
- 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

  • Question Question
Microsoft 365 comparaison texte
Réponses
5
Affichages
713
Réponses
1
Affichages
686
Réponses
1
Affichages
1 K
Retour