Runtime error 91 ? Need Help...
Fermé
laurent13400
Messages postés
2
Date d'inscription
jeudi 9 avril 2015
Statut
Membre
Dernière intervention
9 avril 2015
-
9 avril 2015 à 13:00
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 10 avril 2015 à 09:11
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 10 avril 2015 à 09:11
A voir également:
- Runtime error 91 ? Need Help...
- Directx runtime - Télécharger - Pilotes & Matériel
- Microsoft visual c++ runtime - Guide
- Java runtime - Télécharger - Langages
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Eespt technical error ✓ - Forum TNT / Satellite / Réception
3 réponses
Salut,
Je ne sais pas si l'erreur vient de là (pas testé) mais voilà ce que j'ai trouvé
Dans ta boucle For, la variable de contrôle l est modifiée juste avant le Next.
C'est peut-être voulu, mais normalement on ne procède pas comme ça.
C'est le Next qui doit incrémenter la variable.
A+
Je ne sais pas si l'erreur vient de là (pas testé) mais voilà ce que j'ai trouvé
For l = 1 To lastr
'...
'...
l = Frow + 1
Next
Dans ta boucle For, la variable de contrôle l est modifiée juste avant le Next.
C'est peut-être voulu, mais normalement on ne procède pas comme ça.
C'est le Next qui doit incrémenter la variable.
A+
Re,
Je crois que ton problème vient d'une d'une mauvaise utilisation de la méthode Find.
Essaie avec cette macro si ça va mieux
Je crois que ton problème vient d'une d'une mauvaise utilisation de la méthode Find.
Essaie avec cette macro si ça va mieux
Sub find_transpose()
' Variables
Dim What As String 'Valeur Cherché
Dim Frow As Long 'Ligne Valeur Trouve
Dim Last_row As Long 'Derniere ligne recherche
Dim l As Long 'ligne
Dim Lr As Long 'Last row sheet 2
'Recopie Vendor
l = 1
Last_row = Range("B1000000").End(xlUp).Row + 2
lastr = Range("B1000000").End(xlUp).Row
Dim c, firstAddress
Sheets(1).Activate
'Vendor
What = "Vendor" 'Variante recherché
With Sheets(1).Range(Cells(l, 2), Cells(Last_row, 2))
Set c = .Find(What)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Frow = c.Row
Cells(Frow, 3).Copy ' Copie de la cellule cherché
'Collage en derniere ligne
Sheets(2).Activate
Lr = Range("A1000000").End(xlUp).Row + 1
Cells(Lr, 1).PasteSpecial
Sheets(1).Activate
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
10 avril 2015 à 09:11
10 avril 2015 à 09:11
Bonjour
What est un nom réservé...
... find(what:="vendor") ou what find("Vendor")
mais tu n'as pas besoin de lancer une boucle
si tu n'as qu'un "vendor"
Si tu as plusieurs "vendor" à copier fais signe (on ne boucle que sur le nombre de "vendor"
je n'ai pas compris le pastespecial qui ne spécifie rien (format,valeur...) et j'ai supposé qu'il s'agissait de la valeur de la colonne C
Michel
What est un nom réservé...
... find(what:="vendor") ou what find("Vendor")
mais tu n'as pas besoin de lancer une boucle
si tu n'as qu'un "vendor"
With Sheets(1)
If Application.CountIf(Columns("A"), "vendor") > 0 Then
Frow = Columns("A").Find("vendor", Range("A1"), xlValues).Row
Data = Cells(Frow, "C").Value
End If
End With
With Sheets(2)
lr = .Range("A1000000").End(xlUp).Row + 1
.Cells(lr, "A") = Data
End With
Si tu as plusieurs "vendor" à copier fais signe (on ne boucle que sur le nombre de "vendor"
je n'ai pas compris le pastespecial qui ne spécifie rien (format,valeur...) et j'ai supposé qu'il s'agissait de la valeur de la colonne C
Michel
9 avril 2015 à 15:43
En fait, j'ai fait ceci pour que la rechercherche reprenne seulement apres la premiere ligne trouvée.
J'ai essayé en supprimant, l'erreur subsiste.
Pour info l'erreur semble se situer dans ma variable Frow, car le debugger me surligne ceci :
Frow = Range(Cells(l, 2), Cells(Last_row, 2)).find(What).Row
Merci tout de meme.
PS : Mais excuses pour l'absence d'accent, je suis en clavier QWERTY...