XL 2010 Fusionner 2 onglets et copier les données en bas du tableau

babass78

XLDnaute Occasionnel
Bonjour,



J’ai une macro qui va chercher les données des onglets FRNS BALANCE et SHARE pour coms et les copier dans RECAP FRNS



Explication des onglets :

Liste clts frns : Chaque ligne est un client qui va avec le fournisseur

RECAP FRNS : c’est FRNS BALANCE et SHARE pour coms réunis


L’onglet Liste clts frns en fonction de la colonne N va chercher les données de l’onglet RECAP FRNS des colonnes J à Q en fonction de la colonne J.


Mais dès que j’exécute la macro RECAPFRNS, cela fait sauter la formule dans l’onglet Liste clts frns


Peut-on ne prendre que les lignes de SHARE pour coms qui ont 1 en colonne V et le fusionner avec FRNS BALANCE pour les copier dans RECAP FRNS ?


1ère question :

Comment faire pour que la formule reste dans l’onglet Liste clts frns ?



2ème question


Onglet Nouveau : Colonne S :

Je voudrai copier les données des colonnes K à Q de RECAP FRNS et les colonnes O à U de Liste clt frns dans Nouveau à partir de la colonne T dernière ligne (nombre de lignes variables)


S’il trouve un doublon entre RECAP FRNS et Liste clt frns, il ne devra pas copier les cellules O à U dans Nouveau


Merci de votre aide
 

Pièces jointes

  • 2018 05 15 - Excel pratique - fusionner et copier données.xlsm
    958.6 KB · Affichages: 67

vgendron

XLDnaute Barbatruc
Hello
Me revoici avec une nouvelle version

Regarde le module 1
il y a 3 macro pour traiter les feuilles brutes
pour la seconde (SHARE_Brut_To_COMS) il faudrait que tu valides: OK ou KO?
en effet, au moment de la copie des colonnes, tu copies deux fois la colonne A..? normal? utile?


pour la 3eme macro: "Clients_Brut_To_Nouveau"
j'ai ajouté la partie manquante par rapport à hier..
idem.. à valider

ensuite.. il va falloir faire le tri des macros devenues inutiles dans les autres modules..

Module 4: macro "Liste_Clts_Frns_Relations"
tu mets des formules dans une feuille qui n'existe pas dans le fichier..
idem. il faudrait modifier les formules avec un Sierreur(formule;"") pour éviter d'avoir des N/A partout

ensuite.. euh.. faut réexpliquer la suite :-D
 

Pièces jointes

  • VBA SHARE BRUT FRNS Rev1 -01 06 2018 VGENDRON.xlsm
    1.1 MB · Affichages: 28

babass78

XLDnaute Occasionnel
Bonjour à toi

J'ai lance la macro du Module 1 j'ai une erreur à texte en rouge ci dessous

Erreur d execution type 13

For j = LBound(TabNouveau, 1) To UBound(TabNouveau, 1)
identique = True
For k = 13 To 20 'colonne M à T à comparer avec colonnes K à R
MsgBox TabNouveau(78, 11)
On Error Resume Next 'ligne à mettre sinon. erreur.. sans doute à cause des N/A ?


J’ai supprimé les macros qui ne servent pas dont Module 4 Liste_Clt_Frns_Relations

pour la seconde (SHARE_Brut_To_COMS) il faudrait que tu valides: OK ou KO?

o Oui c’est bon mais peut on supprimer les lignes où il y LIV dans la cellule colonne H N°Lot ?

Merci
 

Pièces jointes

  • VBA SHARE BRUT FRNS Rev1 -01 06 2018 VGENDRON (2).xlsm
    957 KB · Affichages: 13

vgendron

XLDnaute Barbatruc
ha pardon. j'avais pas vu qu'il s'agissait des lignes qui COMMENCENT par LIV

avec le code déjà proposé, tu aurais pu trouver tout seul..
VB:
Sub SHARE_Brut_To_COMS() '==> BOUTON "SHARE_Brut vers SHARE pour coms" dans feuille "SHARE BRUT"    ==>OK
Application.ScreenUpdating = False
With Sheets("Share pour coms")
    .UsedRange.Offset(1, 0).Delete
    .AutoFilterMode = False
End With
With Sheets("SHARE BRUT")
'    .Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
'        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
'        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
'        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
'        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
'        ), Array(14, 1), Array(15, 1)), TrailingMinusNumbers:=True
       
    .Columns("A:A").Copy Destination:=Sheets("Share pour coms").Range("A:A") 'on copie la colonne A (société)
    .Columns("A:A").Copy Destination:=Sheets("Share pour coms").Range("B:B") 'on copie la colonne A (société): une deuxième fois?
    .Columns("D:D").Copy Destination:=Sheets("Share pour coms").Range("C:C")
    .Columns("C:C").Copy Destination:=Sheets("Share pour coms").Range("D:D")
    .Columns("B:B").Copy Destination:=Sheets("Share pour coms").Range("E:E")
    .Columns("I:I").Copy Destination:=Sheets("Share pour coms").Range("G:G")
    .Columns("S:S").Copy Destination:=Sheets("Share pour coms").Range("H:H")
    .Columns("M:M").Copy Destination:=Sheets("Share pour coms").Range("I:I")
    .Cells.Clear
End With

With Sheets("Share pour coms")
    formuleL = "=Concatener(C2;D2;E2)"
    formuleO = "=C2"
    formuleT = "=I2"
   
    Fin = .Range("C" & .Rows.Count).End(xlUp).Row
    .Range("L2").FormulaLocal = formuleL
    .Range("O2").FormulaLocal = formuleO
    .Range("T2").FormulaLocal = formuleT
    .Range("O2:S2").FillRight
    .Range("R2").Clear
    .Range("L2:T" & Fin).FillDown
   

    'on met "Quelle Session?" dans les cellules vides de la colonne D
    .Range("C1:S" & Fin).AutoFilter field:=2, Criteria1:="="
    .Range("D2:D" & Fin).SpecialCells(xlCellTypeVisible) = "Quelle Session?"
    .AutoFilterMode = False
   
    'on supprime les lignes dont la colonne H ne CONTIENT PAS "ECH"
    .Range("C1:S" & Fin).AutoFilter field:=6, Criteria1:="<>*ECH", Operator:=xlAnd
    .Range("C2:C" & Fin).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    .AutoFilterMode = False
   
    'on supprime les lignes dont la colonne H commence par "LIV"
    .Range("C1:S" & Fin).AutoFilter field:=6, Criteria1:="=LIV*", Operator:=xlAnd
    .Range("C2:C" & Fin).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    .AutoFilterMode = False
   
    .Columns.AutoFit
End With
End Sub
 

Discussions similaires

Réponses
7
Affichages
292

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo