Macro recherche bloque quand il ya trop de resultat

walyddu59

XLDnaute Nouveau
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 .
 

Modeste geedee

XLDnaute Barbatruc
Re : Macro recherche bloque quand il ya trop de resultat

Bonsour®
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

merci d'avance pour vos solutions apportées .

la fonction transpose interverti lignes et colonnes
depuis XL2007 le nombre maxi de colonne est 16384

avant d'utiliser ta fonction, il faudra controler les Ubounds de R
si le nombre de lignes est supérieur à 16384
il te faudra modifier ton algorithme ou revoir l'analyse des besoins(limitation des bounds par exemple)

@+
 

walyddu59

XLDnaute Nouveau
Re : Macro recherche bloque quand il ya trop de resultat

salut merci pour ta reponse mais j'y compriend rien ;) je vien juste de commencer avec VBA pour mon stage , dans mon fichier il ya juste 30 colone pourtant je comprend pas , quand je supprime des colonne cela fonctionne .
 

Modeste geedee

XLDnaute Barbatruc
Re : Macro recherche bloque quand il ya trop de resultat

Bonsour®
la fonction transpose est une fonction de feuille de calcul

sourire
j'y compriend rien, je vien juste de commencer avec VBA
fait des essais en mode formule feuille de calcul, familiarise toi d'abord avec les fonctions de bases...
avant que de te lancer tête baissée dans le VBA

@+
 

walyddu59

XLDnaute Nouveau
Re : Macro recherche bloque quand il ya trop de resultat

re-salut , oui je sais mais le probleme et que je suis en stage et mon tuteur veut se travail pour demain , j'ai pas trop le temps d'apprendre j'ai essayer plusieurs chose mais toujours rien . je galère vraiment .
 

Discussions similaires

Réponses
11
Affichages
415

Statistiques des forums

Discussions
312 952
Messages
2 093 888
Membres
105 861
dernier inscrit
Chloe.obsr