VBA recherche de données dans une autre page

Résolu/Fermé
kira83720 - 25 juil. 2007 à 16:04
 vb - 26 juil. 2007 à 17:20
Bonjour, je suis en train d'essayer de programmer sous vba une fonction qui me permet de chercher dans la feuille ("JCF") les valeurs localisées en feuille "Sheet1" situé dans les cellules B4:B21. Et une fois ces valeurs trouvées que la ligne associée à ses valeurs soit collées dans la feuille "sheet1", remplaçant les valeurs existantes.

J'ai écrit ça, je sais c'est loim d'être parfait et il y a pas mal d'erreurs:

Private Sub CommandButton3_Click()

Worksheets("Sheet1").Activate

Dim cellule As Range
Dim j As Range
Dim i As Integer
Dim y As String

Set mot = Cells.Range("D6:D21")


i = 1
For Each cellule In Worksheets("JCF").Range("D9:D200")
If cellule.Value = mot Then
cellule.EntireRow.Copy Worksheets("Sheet1").Range("A2" & i)
i = i
Set j = cellule
End If

Next

If j Is Nothing Then
Exit Sub
End If


End Sub

Un petit coup de main ne serait pas refus

Merci
A voir également:

3 réponses

une boucle do while/loop ou do until/loop peut être?

do while CONDITION
     CODE
loop
1
Je l'ai modifier un peu, le problème, maintenant, le programme va uniquement chercher dans la page "JCF" les valeurs de la cellule D5, et colle la ligne dans la ligne 6, et pas dans la ligne 5, et également le programme ne prend pas en compte les lignes suivantes. Comment faire pour y parvenir??? des idées?????

Private Sub CommandButton3_Click()

Worksheets("Sheet1").Activate

Dim cellule As Range
Dim j As Range
Dim i As Integer
Dim mot As Range

y = Range("D4:D21")
Set mot = Cells.Range("D5:D21").Find(what:=y)

i = 1
For Each cellule In Worksheets("JCF").Range("D5:D200")
If cellule.Value = mot Then
cellule.EntireRow.Copy Worksheets("Sheet1").Range("A1" & i)

Set j = cellule
End If
Next
If j Is Nothing Then Exit Sub


End Sub
0
Problème résolu, c'est pas très académique, mais ça fonctionne, j'ai répété le nombre de fois voulu le code suivant:

Private Sub CommandButton3_Click()

Dim cellule As Range
Dim j As Range
Dim i As Integer
Dim mot As Range


Set mot = Cells.Find(Range("D5").Value)


i = 1
For Each cellule In Worksheets("JCF").Range("D4:D200")
If cellule.Value = mot Then
cellule.EntireRow.Columns("A:F").Copy Worksheets("Sheet1").Range("A5")
i = i - 1
Set j = cellule
End If
Next
If j Is Nothing Then Exit Sub
0