Bonjour ,
je suis débutant en VBA , je l'utilise pour mon stage donc mon probleme et que je doit effectuer une recherche d'un terme (référence ou mot ) puis copié et collé les résultats dans une feuille avec une base de données de 65000 lignes ^^ , j'ai trouver une macro qui fonctionne parfaitement le seul problème et que quand il ya trop de résultat jai une erreur du type erreur d’exécution 13 incompatibilité de type , voici la ligne qui pose probleme R = Application.WorksheetFunction.Transpose(T) je pense que c'est la fonction qui transporte les données sur une autre feuille , elle ne doit pas supporte un grand nombre de transport de donnees
voila le macro complet :
Sub LignesMotRecheche()
Dim S As Worksheet
Dim rep
Dim R As Range
Dim var
Dim dep&
Dim i&
Dim j&
Dim k&
Dim cpt&
Dim T()
Dim A$
Dim B$
rep = Application.InputBox("Tapez le mot à rechercher", "Lignes contenant le mot recherché")
If rep = False Or rep = "" Then Exit Sub
B$ = LCase(rep)
Set R = ActiveSheet.UsedRange
dep& = R.Row
var = R
For i& = 1 To UBound(var, 1)
For j& = 1 To UBound(var, 2)
A$ = LCase(Trim(var(i&, j&))) 'commodité d'écriture
If InStr(1, A$, B$) > 0 Then
cpt& = cpt& + 1
ReDim Preserve T(1 To UBound(var, 2) + 1, 1 To cpt&)
T(1, cpt&) = i& + dep& - 1
For k& = 1 To UBound(var, 2)
T(k& + 1, cpt&) = var(i&, k&)
Next k&
Exit For
End If
Next j&
Next i&
If cpt& = 0 Then
MsgBox "Aucune occurence de ''" & rep & "'' n'a été trouvée."
Exit Sub
Else
Set S = Sheets.Add(before:=ActiveSheet)
Set R = S.Range(S.Cells(1, 1), S.Cells(UBound(T, 2), UBound(T, 1)))
R = Application.WorksheetFunction.Transpose(T)
End If
End Sub
merci d'avance pour vos solutions apportées .