créer une macro : copier une ligne excel en fonction d'une cellule

barkoxe

XLDnaute Nouveau
bonjour,

j'ai testé 50 choses mais je n'arrive plus à avancer

voici mon besoin:
sur le 1er onglet " extractions" j'ai une base de données :
particularité sur la colonne " H" je retrouve les divers client " A , B , C , ..."
j'ai créer un onglet pour chaque client : "client A , client B , client C , ..."
je souhaite que la macro copie chaque ligne sur le bon onglet en fonction de la cellule "H" pour qu'elle vienne la positionner sur le bon onglet .

à ce jour voici mon travail :

Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long

Sheets("A").Activate ' feuille de destination

Col = "H" ' colonne Test'
NumLig = 2
With Sheets("extractions") ' feuille de la base de données'
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 3 To NbrLig '1ere ligne prise en compte'
If .Cells(Lig, Col).Value = "A" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Sheets("A").Cells(NumLig, 1).Insert Shift:=xlDown ' insérer ligne '
End If
Next
End With

maintenant je n'arrive pas à généraliser l'opération ou à la multiplier...

merci d'avance pour votre aide


cordialement fabrice:)
 

soenda

XLDnaute Accro
Re : créer une macro : copier une ligne excel en fonction d'une cellule

Bonjour barkoxe, le fil

Peut-être en ajoutant la destination à la ligne :

.Cells(Lig, Col).EntireRow.Copy Cells(NumLig, 1) 'Sheets("A") étant activée

A plus
 

Efgé

XLDnaute Barbatruc
Re : créer une macro : copier une ligne excel en fonction d'une cellule

Bonjour barkoxe, soenda, le fil, le forum
Il est toujours plus façile d'avoir un petit exemple sur lequel s'appuyer.
Une proposition qui reste dans le même esprit que le code fourni.
Les lignes sont commentées dans le fichier joint.
VB:
Sub Test()
Dim Lig As Long, Col As Long, NbrLig As Long
Dim Temp As Variant
Col = 8
Application.ScreenUpdating = False
With Sheets("extractions")
    NbrLig = .Cells(Rows.Count, Col).End(xlUp).Row
    For Lig = 3 To NbrLig
        Temp = .Cells(Lig, Col)
        .Cells(Lig, Col).EntireRow.Copy
        On Error Resume Next
        Sheets(Temp).Cells(2, 1).Insert Shift:=xlDown
        On Error GoTo 0
    Next
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox "Exportation terminée"
End Sub
Cordialement
 

Pièces jointes

  • barkoxe(1).xls
    36 KB · Affichages: 511

barkoxe

XLDnaute Nouveau
Re : créer une macro : copier une ligne excel en fonction d'une cellule

cad :
1er extractions en date a => j'obtiens x lignes
2ème extractions en date b => j'obtiens y lignes ( y lignes = x lignes incomplets (des références seront sortie de ma base ) + les nouvelles références entrée )

le but attendu:
1 - supprimer les références qui n'existent plus dans ma base.
2 - supprimer les doublons ( possible avec les fonctions Excel de base : j'ai tester)
3 - exporter seulement les nouvelles références .

donc je ne sais pas dire si mon besoin est très complexe en programmation car je débute,
mais dans un premier temps, il serait intéressant de pouvoir exporter une sélection de ligne "nouvelle par ex " en lieu et place des toute la page .

voir illustration

je vous remercie d'avance pour votre soutien .

je trouve très intéressantes les capacités de Excel
Cordialement,
 

Pièces jointes

  • barkoxe(1)(1).xls
    55 KB · Affichages: 219

Efgé

XLDnaute Barbatruc
Re : créer une macro : copier une ligne excel en fonction d'une cellule

Re
En dehors du fait que la nouvelle demande n'a rien à voir avec le début du fil, il me faudrait comprendre.
Si l'on suit la logique, on ne va que copier la table à T2. D'autre part la colonne H ne pourra servir que pour l'éclatemnt des lignes.
Quelles sont les champs (colonnes) constants des tableaux ?
Quelles sont les champs pouvant être modifié entre T1 et T2 ?
Les tableaux sont ils sur deux feuilles en commençant en A1 ?
Faut il vraiment faire un tablau intermédiaire avant l'éclatement ?
Enfin bref, je dois avouer être un peu perplexe sur la faisbilité sans indications supplémentaires.
A te re lire.
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : créer une macro : copier une ligne excel en fonction d'une cellule

Re
Après consultation des rûnes magiques par le chaman du vilage...Les esprits proposent une nouvelle version.
Comme ce sont eux qui proposent, le code n'est pas du même genre.
En espérant que cela ira.
Cordialement
 

Pièces jointes

  • barkoxe(3).xls
    45 KB · Affichages: 447

barkoxe

XLDnaute Nouveau
Re : créer une macro : copier une ligne excel en fonction d'une cellule

Re
Après consultation des rûnes magiques par le chaman du vilage...Les esprits proposent une nouvelle version.
Comme ce sont eux qui proposent, le code n'est pas du même genre.
En espérant que cela ira.
Cordialement

je regarde et je te donne une réponse demain dans la journée ...

mais merci pour tout déja
 

Discussions similaires

Réponses
0
Affichages
147
Réponses
1
Affichages
164

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16