Bonjour et bonsoir à tous,
J'ai un nouveau problème. En VBA, j'ai trouver comment aller chercher des infos dans une autre feuille et extraire des informations. Par contre lorsque je récupère ces informations.... et bien je récupère la zone de recherche au complet...
Puis-je avoir un peu d'aide pour comprendre mon erreur?
Merci d'avance..
Voici mon VBA :
Sub CommandButton21_Click()
'nettoyer
Range("b6:g500").ClearContents
Application.ScreenUpdating = False
'description des valeurs
Dim SheetSource As Worksheet ' la feuille source
Dim SheetTarget As Worksheet ' la feuille cible
Dim LineSource As Range ' la ligne source courante
Dim CellTarget As Range ' la ligne cible courante (retenir la première cellule suffit en fait)
Dim ZoneSource As Range ' la plage de cellules à considérer
Set SheetSource = Worksheets("PlanC")
Set SheetTarget = Worksheets("Bilan_D")
Set CellTarget = SheetTarget.Cells(6, "B")
Set LineSource = SheetSource.Range("C1:d1000") *** code qui ne fonctionne pas****
Set ZoneSource = SheetSource.Range("b1:d1000") 'on verra plus tard comment réduire ça à notre zone effective.
For Each LineSource In ZoneSource.Rows
If LineSource.Cells(1).Value = "Actif" Then
' Il faut copier la ligne vers la cible
LineSource.Copy Destination:=CellTarget
' Et on déplace la cible pour la prochaine fois !
Set CellTarget = CellTarget.Offset(1)
End If
Next
End Sub
J'ai un nouveau problème. En VBA, j'ai trouver comment aller chercher des infos dans une autre feuille et extraire des informations. Par contre lorsque je récupère ces informations.... et bien je récupère la zone de recherche au complet...
Puis-je avoir un peu d'aide pour comprendre mon erreur?
Merci d'avance..
Voici mon VBA :
Sub CommandButton21_Click()
'nettoyer
Range("b6:g500").ClearContents
Application.ScreenUpdating = False
'description des valeurs
Dim SheetSource As Worksheet ' la feuille source
Dim SheetTarget As Worksheet ' la feuille cible
Dim LineSource As Range ' la ligne source courante
Dim CellTarget As Range ' la ligne cible courante (retenir la première cellule suffit en fait)
Dim ZoneSource As Range ' la plage de cellules à considérer
Set SheetSource = Worksheets("PlanC")
Set SheetTarget = Worksheets("Bilan_D")
Set CellTarget = SheetTarget.Cells(6, "B")
Set LineSource = SheetSource.Range("C1:d1000") *** code qui ne fonctionne pas****
Set ZoneSource = SheetSource.Range("b1:d1000") 'on verra plus tard comment réduire ça à notre zone effective.
For Each LineSource In ZoneSource.Rows
If LineSource.Cells(1).Value = "Actif" Then
' Il faut copier la ligne vers la cible
LineSource.Copy Destination:=CellTarget
' Et on déplace la cible pour la prochaine fois !
Set CellTarget = CellTarget.Offset(1)
End If
Next
End Sub