VBA rechercher un mot,copier coller plage...

Fermé
swell004 Messages postés 2 Date d'inscription samedi 29 août 2009 Statut Membre Dernière intervention 30 août 2009 - 29 août 2009 à 13:12
 barnaby - 31 août 2009 à 10:02
Bonjour,

Je suis novice en VBA et etant en stage et ayant un peu beaucoup arrondi sur les bord mon niveau en VBA a l entretien, je dois mtnt assumer :)!!

Je souhaite rechercher dans un onglet Sheet1 dans la ligne 8 un mot clef nomme "portfolio", puis copier coller la plage de cellule qui se trouve deux ligne en dessous et qui s etale sur 10 lignes et 5 colonnes a droite. Evidemment il y a pusieurs "portfolio" dans la ligne 8.

Et l'interet de ce programme serait de les coller dans un autre onglet sheet2 de maniere ordonnee, c'est a dire, coller ces plages de cellules les une en dessous des autres (disons a partir de A2)

J ai mis du temps a aller sur un forum car j ai pris le temps pdtt une sem pour voir si je pouvais me debrouiller tout seul mais force est ce constater q pour ce projet, ca ne m a pas suffit!

J ai pense utiliser une fonction Find, mais pour ce qui est de faire comprendre a l'ordi de copier coller les plages en dessous de ce mot "portfolio" c est m est impossible a fare

Merci de votre aide et de votre temps accorde!

1 réponse

swell004 Messages postés 2 Date d'inscription samedi 29 août 2009 Statut Membre Dernière intervention 30 août 2009
30 août 2009 à 22:37
j ai fait ca pour l instant :

Sub test()
Dim mot As String
Dim i, k As Integer
Dim montab(10) As Variant

For i = 1 To 15
mot = Worksheets("Sheet1").Range("A" & i & ":Z" & i).Value ' la ca bug

If mot = "portfolio" Then
For k = 1 To 10
montab(k) = Range("A" & i + k & ":Z" & i + k + 5)
Next
End If

Next

For i = 2 To 10
Worksheets("Sheet2").Range("A" & i) = montab(i)
Next


je ne veux plus me contenter de rechercher le "portfolio" ds la ligne 8 mais dans toute la feuille et ca me met erreur 13 si vous pouviez m aider! :(
End Sub
0
Salut,

Beaucoup trop compliqué ton code utilise la méthode de recherche .find
set f =sheets("Sheet1").Range("A:Z").find(what:="portfolio")
if not f is nothing then
first = f.address
do

ici tes instructions

set f =sheets("Sheet1").Range("A:Z").findnext(f)

loop while not f Is Nothing And f.Address <> firstAddress
end if

Bonne continuation
0