Couper une ligne sur un autre fichier

Bonjour à tous, je suis nouveau sur ce site, et débutante en macro.

J'expose mon problème:

J'ai essayé de créer une macro VBA pour couper coller des lignes d'un tableau Excel sur des autres tableaux Excel.

Exemple:

Les lignes PRODUIT 1 sur le fichier analyse je veux les couper coller via une VBA sur le fichier produit 1

Je vous remercie par avance

5produit-1.xlsx (11.02 Ko)
4analyse.xlsm (62.14 Ko)

Sara

Bonjour,

Vous voulez vraiment couper les lignes et pas les copier ? Et quelles lignes faut-il couper ? la dernière, la première, certaines ou toutes ? Car il n'y a qu'une seule ligne dans votre exemple.

Cdlt,

Bonjour,

Je vous présise la situation :

-Oui je veux les couper pour supprimer les lignes à chaque fois qu'elle sont reprises sur l'autre tableau Excel ( c'est juste un exemple les fichier que je dois modifier sont ultra lourd cela vas me permettre de les alléger)

-Il faut couper les lignes produit 1 dans le fichier produit 1, les lignes produit 2 dans le fichier produit 2...

Je vous remercie par avance

sara

Bonjour,

Voici un essai que je n'ai pas testé. Il faudra s'assurer que le nom du produit est commun au classeur (Produit 1.xlsx), au nom de la feuille ciblée (Analyse Produit 1) et aux valeurs à chercher dans la colonne B (Produit 1). On pourra éventuellement réfléchir à améliorer ce point pour variabiliser le produit si j'ai plus d'info sur la façon dont il sera choisi...

Ici, j'ai considéré que le classeur produit 1 était ouvert lors de l'exécution. Sinon, il faudra adapter le code.

La meilleure solution aurait quand même été d'avoir des tableaux structurés sur chaque feuille. Y songer pourrait vous être utile...

Voici le code :

Sub RecupProduits()

Dim wbprod As Workbook
Dim wsprod As Worksheet, wsanal As Worksheet
Dim rtab As Range, rprod As Range
Dim dlprod%, nvlanal%
Dim prod$

prod = "Produit 1" 'nom du produit à chercher <<< adapter si besoin
Set wbprod = Workbooks(prod & ".xlsx") 'classeur produit 1 <<< adapter si besoin
Set wsprod = wbprod.Sheets("Analyse " & prod) 'feuille produit 1 <<< adapter si besoin
Set wsanal = ThisWorkbook.Sheets("Analyse") 'feuille analyse

With wsprod 'avec feuille produit 1
    dlprod = .Range("B" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide
    Set rtab = .Range("A2:BR" & dlprod) 'tableau des lignes à couper
    Set rprod = rtab.Columns(2) 'colonne produits à inspecter
End With

For Each cell In rprod 'pour chaque cellule de la colonne produit
    If cell.Value = prod Then 'si la valeur = produit 1
        nvlanal = wsanal.Range("B" & wsanal.Rows.Count).End(xlUp).Row + 1 '1è ligne non vide sur analyse
        rtab.Rows(cell.Row).Cut Destination:=wsanal.Range("A" & nvlanal) 'couper coller dans analyse
    End If
Next cell

Set rprod = Nothing: Set rtab = Nothing 'libération variables
Set wsanal = Nothing: Set wsprod = Nothing: Set wbprod = Nothing

End Sub

Cdlt,

Rechercher des sujets similaires à "couper ligne fichier"