Petit problème sur cette macro

excelJL

XLDnaute Nouveau
Bonjour

Je crois que là je suis dépassé et que mes compétences s'arrêtent.


Sub Macro2()

Dim zone As Range
Dim cellule As Range
Set zone = Range("a1:a1100")
cell = [N°clients]
For Each cellule In zone
Select Case cellule
Case Is = cell
Selection.Copy
Sheets("Ficher clients").Select
Range("A19").Select
ActiveSheet.Paste
Case Else

End Select
Next

End Sub

Le but de cette macro en théorie, devrait récupérer un code client dans une feuille , puis aller chercher tous les enregistrements correspondants à ce client dans une base de données, afin de les copier dans la fiche client pour consulter toutes les transactions du client.

Merci d'avance si vous pouvez quelque chose pour moi
 

pierrejean

XLDnaute Barbatruc
Re : Petit problème sur cette macro

bonjour excelJL

sans avoir testé
il y a au moins ceci a changer

Code:
Sub Macro2()
 
Dim zone As Range
Dim cellule As Range
Set zone = Range("a1:a1100")
cell = [N°clients]
[COLOR=red]ligne=19[/COLOR]
For Each cellule In zone
Select Case cellule
Case Is = cell
Selection.Copy
Sheets("Ficher clients").Select
[COLOR=red]Range("A" & ligne).Select[/COLOR]
ActiveSheet.Paste
[COLOR=red]ligne=ligne+1[/COLOR]
Case Else
 
End Select
Next
 
End Sub
 

bqtr

XLDnaute Accro
Re : Petit problème sur cette macro

Bonjour excelJL, pierrejean

Essaye comme ceci :

Code:
Sub Macro2()
 
Dim zone As Range
Dim cellule As Range
Dim ligne As Long, cell

Set zone = Sheets("db").Range("a2:a1100")
cell = [N_clients]
ligne = Sheets("Ficher clients").Range("A65536").End(xlUp).Row

For Each cellule In zone
 If cellule = cell Then
    Range(cellule, cellule.Offset(0, 3)).Copy Sheets("Ficher clients").Range("A" & ligne + 1)
    ligne = ligne + 1
 End If
Next
 
End Sub

Il y a une erreur sur ta cellule nommée, Excel n'accepte pas N°clients, il faut N_clients.

A+
 

Cousinhub

XLDnaute Barbatruc
Re : Petit problème sur cette macro

Re-, bonjour bqtr,
une autre approche, dès que tu modifies le numéro de client, sa fiche se met à jour automatiquement par filtre élaboré.

Sub extract()
Application.ScreenUpdating = False
Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"C3:C4"), CopyToRange:=Range("A8:D8"), Unique:=False
Application.ScreenUpdating = True
End Sub

la zone nommée base est automatiquement mise à jour dans l'onglet ("db")
 

Pièces jointes

  • DB.zip
    10.9 KB · Affichages: 18
  • DB.zip
    10.9 KB · Affichages: 21
  • DB.zip
    10.9 KB · Affichages: 22

Discussions similaires

Réponses
7
Affichages
608

Statistiques des forums

Discussions
312 695
Messages
2 091 049
Membres
104 747
dernier inscrit
CELDU60