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

babass78

XLDnaute Occasionnel
Bonjour vgendron,
Lorsque je copie la colonne A de FRNS BRUT(2) vers FRNS BRUT en colonne A j'ai le message suivant
Voulez vous remplacer le conenu des cellules de destination ?
Comment faire pour ne pas avoir ce message ?
Merci bien,,,,
 

vgendron

XLDnaute Barbatruc
Salut

FRNS BRUT(2) : c'était juste une copie de sauvegarde de ta feuille FRNS Brut ==> tu peux donc la supprimer..
quand tu fais ton importation du logiciel comptable..je suppose que ca va directement dans une feuille "FRNS Brut" vide
donc. pas de message à avoir..

questions pour anticiper...
Comment fais tu l'importation?
==>c'est le logiciel qui créer la feuille FRNS Brut
==> ou c'est toi qui
1- Créer une feuille vide
2- la renomme en "FRNS Brut"
3- copie colle les data dans la colonne A

Auquel cas. à la fin de la macro FRNS To Balance.. on peut effacer la feuille Brut..
 

babass78

XLDnaute Occasionnel
Salut

FRNS BRUT(2) : c'était juste une copie de sauvegarde de ta feuille FRNS Brut ==> tu peux donc la supprimer..
quand tu fais ton importation du logiciel comptable..je suppose que ca va directement dans une feuille "FRNS Brut" vide
donc. pas de message à avoir..

questions pour anticiper...
Comment fais tu l'importation?
==>c'est le logiciel qui créer la feuille FRNS Brut
==> ou c'est toi qui
1- Créer une feuille vide
2- la renomme en "FRNS Brut"
3- copie colle les data dans la colonne A

Auquel cas. à la fin de la macro FRNS To Balance.. on peut effacer la feuille Brut..


L'importation se fait avec le logiciel ORACLE et qui créé une sortie .

Une fenêtre s’ouvre et on fait Sélectionner tout Copier et Coller dans l’onglet FRNS BRUT

Je colle les datas en colonne A dans l’onglet FRNS BRUT


Oui on peut effacer la colonne A dans FRNS BRUT


En fait je créé un fichier qui va chercher 3 balances que je colle dans le fichier

Ensuite j’ai créé des Templates


Je ne sais pas si tu as vu mes 2 problèmes par la suite


Merci à toi
 

vgendron

XLDnaute Barbatruc
Salut @job75
Ok, ca n'alourdi pas enormément le fichier.. cela dit.. si on ajoute à ca des MFC sur une feuille complète, PLUS des formules plus plus plus... ca peut finir par grossir quand meme.. il y a quelques mois.. j'ai "purgé" un gros fichier qui est passé de 6Mo à 1Mo.... quand meme...

et en fait.. LES pourquoi j'aime pas colorer toute une colonne ?
c'est que c'est moche... tout comme avoir des 0 qui se balladent sur toute une colonne
et l'ascenceur....j'aime bien pouvoir le prendre à la souris. le descendre jusqu'en bas.. et me retrouver à la fin des données de mon tableau....et pas à la ligne 38000
et que j'aime bien la fonction .usedrange (ok. je pourrais aussi lui adjoindre le xlLastCell - ou un truc dans le genre je sais plus)
Bref.. question de gout et de petites habitudes, je pense :-D


Salut @babass78
pour vider la feuille FRNS Brut, suffit de rajoutter dans le code un .clear
VB:
Sub FRNS_Brut_To_Balance()
Application.ScreenUpdating = False
With Sheets("FRNS BALANCE")
    .UsedRange.Offset(1, 0).Delete
End With
With Sheets("FRNS 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("B:F").Copy Destination:=Sheets("FRNS BALANCE").Range("N:N")
    .Columns("M:N").Copy Destination:=Sheets("FRNS BALANCE").Range("S:S")
    .Cells.Clear
End With
With Sheets("FRNS BALANCE")
    formuleY = "=Concatener(P2;Q2;R2)"
    formuleZ = "=N2"
    formuleAF = "=RECHERCHEV(Y2;'SHARE pour coms'!$W$2:$AD$532;8;FAUX)"

    fin = .Range("N" & .Rows.Count).End(xlUp).Row
    .Range("Y2").FormulaLocal = formuleY
    .Range("Z2").FormulaLocal = formuleZ
    .Range("Z2:AE2").FillRight
    .Range("AF2").FormulaLocal = formuleAF
    .Range("Y2:AF" & fin).FillDown
    .Columns.AutoFit
End With
Application.ScreenUpdating = True
End Sub
 

babass78

XLDnaute Occasionnel
Merci beaucoup

J’ai un onglet SHARE BRUT et SHARE pour coms

Je n’arrive pas a reprendre la macro de FRNS BALANCE et l’adapter a SHARE pour coms

Sur l’onglet SHARE pour coms Il me faut les informations de la colonne W à AD

Dans la colonne AF de l'onglet FRNS BALANCE, la formule reprend le commentaire de SHARE pour coms colonne AD
Je te joins le fichier
Merci beaucoup
 

Pièces jointes

  • VBA - Copier SHARE BRUT sur SHARE pour coms et mettre formules.xlsm
    719.3 KB · Affichages: 13

babass78

XLDnaute Occasionnel
Un autre cas sur le même fichier

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
 

vgendron

XLDnaute Barbatruc
alors.. si tu veux bien.. on va y aller étape par étape....
ton post #23: Tu veux faire le meme des données Brut que FRNS, mais pour SHARE.. exact?

1) déjà: mets les data Bruts dans la feuille "Share brut" ==> à priori. de ce que je vois dans ton fichier #23: tu as déjà fait un début de traitement "Données Convertir"...
il suffit donc de reprendre le code de la macro "FRNS_Brut_To_Balance" et l'adapter..
j'ai fait un copier coller de cette macro que j'ai appelée "SHARE_Brut_To_COMS" et commencé à changer les références de feuilles....

et j'ai fait un peu de ménage dans les macros..
 

Pièces jointes

  • VBA SHARE BRUT FRNS Rev1.xlsm
    714.6 KB · Affichages: 13

vgendron

XLDnaute Barbatruc
Ca donnerait un truc comme ca..?
VB:
Sub SHARE_Brut_To_COMS()
Application.ScreenUpdating = False
With Sheets("Share pour coms")
    .UsedRange.Offset(1, 0).Delete
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("D:D").Copy Destination:=Sheets("Share pour coms").Range("N:N")
    .Columns("C:C").Copy Destination:=Sheets("Share pour coms").Range("O:O")
    .Columns("B:B").Copy Destination:=Sheets("Share pour coms").Range("P:P")
    .Columns("I:I").Copy Destination:=Sheets("Share pour coms").Range("R:R")
    .Columns("M:M").Copy Destination:=Sheets("Share pour coms").Range("S:S")
    .Columns("S:S").Copy Destination:=Sheets("Share pour coms").Range("T:T")
    .Cells.Clear
End With

With Sheets("Share pour coms")
    formuleV = "=SIERREUR(EQUIV(""*""&""ECH""&""*"";T2;0);"""")"
    formuleW = "=Concatener(N2;O2;P2)"
    formuleZ = "=N2"
    formuleAC = "=R2"
   
    fin = .Range("N" & .Rows.Count).End(xlUp).Row
    .Range("V2").FormulaLocal = formuleV
    .Range("W2").FormulaLocal = formuleW
   
    .Range("Z2").FormulaLocal = formuleZ
    .Range("Z2:AB2").FillRight
   
    .Range("AC2").FormulaLocal = formuleAC
    .Range("AC2:AD2").FillRight
   
    .Range("V2:AD" & fin).FillDown
    .Columns.AutoFit
End With
End Sub
 

babass78

XLDnaute Occasionnel
Waoouuhhh genial super merci bien , j’apprends beaucoup avec toi

Alors:

Onglet SHARE pour coms :

Colonne Y : Concatener ce sont les colonnes Fournisseur + Code Salon + Session

La colonne T est inutile pour la suite

SHARE BRUT : la colonne S doit être copiée sur SHARE pour coms avant la colonne S

Mais je n’ai besoin que des lignes où il y a « ECH » à la fin de la cellule

Exemple : REF_0005_20170330_ECH

Onglet SHARE pour coms :

Colonne O : Il faudrait le terme suivant dans les cellules vides : « Quelle session ? »



J’ai créé cette macro



Sub SHARECELLULESVIDES()
Dim derlig As Long, i As Long
With Sheets("SHARE pour coms")
derlig = .Cells(Rows.Count, "N").End(xlUp).Row
For i = 2 To derlig
If .Cells(i, "o") = "" Then .Cells(i, "O") = "Quelle session ?"
Next i
End
Dim derlig As Long, i As Long
With Sheets("SHARE pour coms")
derlig = .Cells(Rows.Count, "N").End(xlUp).Row
For i = 2 To derlig
If .Cells(i, "o") = "" Then .Cells(i, "O") = "Quelle session ?"
Next i
End With
End Sub

Mais elle ne fonctionne plus...

La suite après….
 

vgendron

XLDnaute Barbatruc
Salut
pour le Share,
Dans le dernier fichier que tu viens de poster, je ne sais pas si le Share pour Coms correspond à ce que tu veux ou si c'est suite à une de mes macros.
d'autant que tu parles de la colonne N°ot de share brut n'apparait pas dans le share Coms..
donc.. pour faire plus simple sans risque d'erreur:
Imagine que je repars d'une feuille "Share pour coms" totalement vide,
Peux tu me donner la liste complète des colonnes à récupérer dans Share Brut et leur destination dans Share pour Com
ainsi que les formules à mettre .
 

babass78

XLDnaute Occasionnel
Re


Le Share pour coms correspond à ta macro SHARE_Brut_To_COMS


Colonnes à récupérer dans SHARE BRUT (ce qui vient du logiciel tel qu’il est)


Code Salon - Session – Fournisseur - Montant TTC - N° Lot - Statut


L’ordre de destination dans SHARE


Colonne A => vide

Colonne B => vide

Colonne C => Fournisseur

Colonne D => Session

Colonne E => Code Salon

Colonne F => Vide

Colonne G => Montant TTC

Colonne H => N° Lot

Colonne I => Statut

Colonne J => Vide

Colonne K => Vide

Colonne L => =concatener(C2.D2 ;E2)

Colonne M => vide

Colonne N => vide

Colonne O => =C2

Colonne P => =D2

Colonne Q => =E2

Colonne R => = vide

Colonne S=> =G2

Colonne T=> =H2

Colonne S=> =I2

Onglet SHARE pour coms :

Pas besoin de bordures

Je n’ai besoin que des lignes où il y a « ECH » à la fin de la cellule

Exemple : REF_0005_20170330_ECH

Colonne O : Il faudrait le terme suivant dans les cellules vides : « Quelle session
  • Ensuite c’est la macro qui va reprendre les onglets FRNS BALANCE et SHARE pour coms dans l’onglet RECAP FRNS
Merci….
 

Pièces jointes

  • VBA SHARE BRUT FRNS Rev2.xlsm
    948.7 KB · Affichages: 13

Discussions similaires

Réponses
7
Affichages
321

Statistiques des forums

Discussions
312 195
Messages
2 086 082
Membres
103 112
dernier inscrit
cuq-laet