vba colonne de recherche mais pas copier toutes les colones

Patout

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

Patout

XLDnaute Nouveau
Re : vba colonne de recherche mais pas copier toutes les colones

Rebonjour,

J'ai trouver un autre code... mais rien ne copie :(

voici le code:

Option Explicit

Sub cherche()
Dim a As String 'valeur à trouver
Dim p As strig 'valeur à trouver
Dim c As strig 'valeur à trouver
Dim lignea As Range 'valeur trouvé
Dim lignep As Range 'valeur trouvé
Dim lignec As Range 'valeur trouvé
Dim plan As Range 'place de recherche
Dim trouvee As String

'affectation
lignea = "a"
'sans la première colonne de la feuille
Set plan = Worksheets("Plan_C").Columns(1)
End Sub
'1ere recherche
Worksheets("Plan_C").Find(What:="a", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
'traitement de l'erreur
If a Is Nothing Then
'ici, traitement pour pas trouvée
MsgBox ("pas trouve")
Else
'ici traitement si trouvé
lignea = a.Address
Range("c").Copy = Worksheets("Bilan_D").Range("B6", a)
Range("D").Copy = worsksheets("Bilan_D").Range("c6", a)
lignea = Range("b6", I + 1)

'vidage des variables
Set plan = Nothing
Set trouvee = Nothing
End Sub
 

Paf

XLDnaute Barbatruc
Re : vba colonne de recherche mais pas copier toutes les colones

Bonjour

Pour pouvoir vous aider, il faudrait :

-savoir exactement ce que vous voulez faire

- un classeur contenant des données non confidentielles pour tester et adapter la réponse

A+
 

Patout

XLDnaute Nouveau
Re : vba colonne de recherche mais pas copier toutes les colones

Re bonjour,

d'une feuille nommée plan, j'aimerais sélectionné des catégories envoyer la réponse qui est le # du compte et le nom du compte dans une autre feuille nommée bilan....

J'ai joint le fichier
 

Pièces jointes

  • test .xlsm
    132.2 KB · Affichages: 27
  • test .xlsm
    132.2 KB · Affichages: 38
  • test .xlsm
    132.2 KB · Affichages: 38

Patout

XLDnaute Nouveau
Re : vba colonne de recherche mais pas copier toutes les colones

Rebonjour,

j'ai trouver ce nouveau code qui fonctionne a moitié lol :confused:

Il n'inscript pas tous les informations rechercher.

Est-ce qu'il y quelqu'un qui peut voir ce qui cloche. SVP

Option Explicit
Private Sub CommandButton21_Click()
'nettoyer
Range("b5:n40").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
Dim i As Range

'1er colonne
Set SheetSource = Worksheets("PlanC")
Set SheetTarget = Worksheets("Bilan_D")
Set CellTarget = SheetTarget.Cells(5, "B")
Set LineSource = SheetSource.Range("C1:d1000")
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


'2ème colonne
Set SheetSource = Worksheets("PlanC")
Set SheetTarget = Worksheets("Bilan_D")
Set CellTarget = SheetTarget.Cells(5, "f")
Set LineSource = SheetSource.Range("C1:d1000")
Set ZoneSource = SheetSource.Range("b1:d1000")

For Each LineSource In ZoneSource.Rows
If LineSource.Cells(1).Value = "Passif" 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

'3ème colonne
Set SheetSource = Worksheets("PlanC")
Set SheetTarget = Worksheets("Bilan_D")
Set CellTarget = SheetTarget.Cells(5, "j")
Set LineSource = SheetSource.Range("C1:d1000")
Set ZoneSource = SheetSource.Range("b1:d1000")

For Each LineSource In ZoneSource.Rows
If LineSource.Cells(1).Value = "Capital" 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
'insertion d'une ligne vide pour le calcul
Range("b65536").End(xlUp).Select
Range("b65536").End(xlUp)(2).Select

End Sub

NB je cache la colonne "B" avec masquer
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso