[VBA] Utiliser une erreur
Bonsoir,
J'aimerais vérifier si dans une plage qui liste des nom d'espèces végétales, si :
- le 3ème "mot" existe
> Si oui : si le 3ème "mot" = "subsp." ou "var.'
> si oui : si après le 4ème mot il y a quelque chose
En fonction de ces vérifications, je pourrai adapter la suite de mon code.
J'essayais d'utiliser cette macro :
Public Sub test_datas()
Dim lrlf&, i&, cib As Byte, tst As Double, tBase$, t
With Sheets("LISTE_FLORE") 'lf
lrlf = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
On Error Resume Next
cib = .Range("1:1").Find("Ma liste", LookIn:=xlValues, Lookat:=xlWhole).Column 'remp par nmet
If cib = 0 Then chk14 = chk14 + 1
For i = 2 To lrlf
tBase = .Cells(i, cib)
t = Split(tBase, " ")
If Err.t(2) Then tst = tst + 1: GoTo 1 Else tst = tst
If t(2) = "subsp." Or t(2) = "var." Then
If t(4) = "" Then tst = tst + 1 Else tst = tst
End If
1 Next i
End With
End Sub
Où j'essaie notamment de jouer avec les erreurs, pour que si le mot après l'espace recherché n'existe pas, je me serve de l'erreur qui est renvoyée pour déterminer qu'il n'y a pas de "mot" après.
Sauf que je n'arrive pas à utiliser ces erreurs...
Avez-vous une idée de comment je devrais m'y prendre ?
J'ai joins un document si besoin.
Bonne soirée !
A plus tard
Bonjour,
à tester,
If IsError(t(2)) Then
Bonjour Le Drosophile
Voici ce que tu peux faire
Option Explicit
Public chk14 As Byte
Public Sub test_datas()
Dim lrlf&, i&, cib As Byte, tst As Double, tBase$, t
With Sheets("LISTE_FLORE") 'lf
lrlf = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
On Error Resume Next
cib = .Range("1:1").Find("Ma liste", LookIn:=xlValues, Lookat:=xlWhole).Column 'remp par nmet
If cib = 0 Then chk14 = chk14 + 1
For i = 2 To lrlf
tBase = .Cells(i, cib)
t = Split(tBase, " ")
' 3ème mot existe t'il
If t(2) <> "" Then
' vérifier si 3ème mot = "subsp." ou "var."
If t(2) = "subsp." Or t(2) = "var." Then
' vérifier si après le 4ème mot il y a quelque chose
If UBound(t) > 3 Then
MsgBox "5ème mot : " & t(4)
End If
End If
End If
Next i
End With
End Sub
@+
Bonjour,
Je vous remercie pour vos deux réponses.
J'ai fait un mélange avec la proposition de BrunoM45 et la solution pour utiliser les erreurs indiquée par i20100 et tout fonctionne très bien !
Grâce à vous je peux désormais distinguer automatiquement deux sources de données ! Merci
Bonne journée !