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

pas très clair comme explication.
déjà il y a plein de modules vides.. faut les supprimer.. ca ne sert à rien de les garder, juste à rendre plus compliqué la recherche des différents codes

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

laquelle??

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

et je ne comprend pas ce qu'est censé faire cette macro: FRNSRECAPBALANCEFRNSETSHARE

bref.. il faudrait quelques explications supplémentaires
 

babass78

XLDnaute Occasionnel
bonjour,

Pour

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

Elle se nomme FRNSRECAPBALANCEFRNSETSHARE

  • FRNSRECAPBALANCEFRNSETSHARE est la macro qui fusionne les 2 onglets SHARE pour coms et BALANCE FRNS
Dans FRNS BALANCE, en colonne AD il va chercher l’info dans SHARE pour coms

Les 2 fusionnent grâce à FRNSRECAPBALANCEFRNSETSHARE

Merci
 

vgendron

XLDnaute Barbatruc
une idée de macro pour rassembler les feuilles" FRNS Balance" et "SHARE pour coms" dans la feuille "RECAP FRNS"

VB:
Sub BalanceShareToRecap()

With Sheets("FRNS BALANCE")
    .UsedRange.Offset(1, 13).Copy Destination:=Sheets("RECAP FRNS").UsedRange.Offset(1, 0)
End With

With Sheets("SHARE pour coms")
    .UsedRange.Offset(1, 13).Copy Destination:=Sheets("RECAP FRNS").UsedRange.Offset(Sheets("RECAP FRNS").UsedRange.Rows.Count - 1, 0)
End With

With Sheets("RECAP FRNS")
    .Cells.EntireRow.AutoFit
    .Cells.EntireColumn.AutoFit
End With
End Sub
 

vgendron

XLDnaute Barbatruc
ou peut etre meme ceci..
VB:
Sub BalanceShareToRecap()
With Sheets("RECAP FRNS")
    .UsedRange.Offset(1, 0).Delete
End With

With Sheets("FRNS BALANCE")
    .UsedRange.Offset(1, 13).Copy Destination:=Sheets("RECAP FRNS").UsedRange.Offset(1, 0)
End With

With Sheets("SHARE pour coms")
    .UsedRange.Offset(1, 13).Copy Destination:=Sheets("RECAP FRNS").UsedRange.Offset(Sheets("RECAP FRNS").UsedRange.Rows.Count - 1, 2)
End With

With Sheets("RECAP FRNS")
    .Cells.EntireRow.AutoFit
    .Cells.EntireColumn.AutoFit
End With
End Sub
 

babass78

XLDnaute Occasionnel
Désolé

La macro pour copier coller fonctionne très bien mais quel est le code pour ne pas copier les lignes à Zéro de RECAP

Onglet RECAP FRNS à partir de la ligne 81

Merci de votre aide
 

Pièces jointes

  • VBA - Fusionner 2 onglets ne copier que selon une colonne Macro.xlsm
    416.3 KB · Affichages: 24

vgendron

XLDnaute Barbatruc
Bonjour
pour ne pas copier les lignes à Zéro de RECAP

Le plus simple. c'est de ne PAS avoir de lignes avec des formules SANS données... =tes lignes 61 à 565 de la feuille FRNS Balance..
Ca allonge et alourdi un fichier inutilement. c'est comme quand on colore une colonne complète parce qu'on a la flemme de ne selectionner que les cellules remplies ==> en plus. ca provoque des bug avec la fonction .usedrange qui tient compte de ces cellules perdues dans le fin fond du fichier

==> question: comment est remplie la feuille FRNS Balance ? ==> n'y a t il pas moyen de ne mettre la formule QUE sur les 60 premières lignes qui contiennent des datas ?

dans la PJ:
j'ai supprimé ces lignes inutiles
et commenté le code de la macro
 

Pièces jointes

  • VBA - Fusionner 2 onglets ne copier que selon une colonne Macro.xlsm
    290.5 KB · Affichages: 22

babass78

XLDnaute Occasionnel
Merci vgendron

La feuille FRNS BALANCE est remplie avec la feuille FRNS BRUT

FRNS BRUT ce sont des données qui viennent du logiciel comptable

= = >Convertir données et ensuite mise en forme pour que les colonnes viennnent là où elles sont actuellement

Leurs lignes peuvent varier d’une semaine sur l’autre

Est il possible que la formule se mette sur les colonnes Y à AF en fonction des colonnes A à N ,

Merci beaucoup
 

vgendron

XLDnaute Barbatruc
Comme il n'y a pas de feuille "FRNS Brut", je te propose ceci un peu au hasard..

je suppose d'abord que tu as importé les data du logiciel comptable
que tu as fait le "Convertir Données et que tu fais de la mise en forme pour avoir tes colonnes A à X
ensuite.. tu créés les formules.?
le code ci dessous est un exemple pour les formules colonnes Y et Z et recopie jusqu'en bas..
VB:
Sub copierformule()
'on prépare les formules telles que tapées sur la ligne 2 (pour une version Française...)
formuleY = "=Concatener(P2;Q2;R2)"
formuleZ = "=N2"
With Sheets("FRNS BALANCE")
    fin = .Range("N" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide sur la colonne N
    .Range("Y2").FormulaLocal = formuleY 'on colle la formule
    .Range("Z2").FormulaLocal = formuleZ
    .Range("Y2:Z" & fin).FillDown 'on tire jusqu'en bas
End With
End Sub
 

vgendron

XLDnaute Barbatruc
du coup. je viens de le faire pour toutes les formules de colonnes Y à AF :-D
VB:
Sub copierformule()

formuleY = "=Concatener(P2;Q2;R2)"
formuleZ = "=N2"
formuleAF = "=RECHERCHEV(Y2;'SHARE pour coms'!$W$2:$AD$532;8;FAUX)"
With Sheets("FRNS BALANCE")
    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
End With
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub
 

Discussions similaires

Réponses
7
Affichages
292

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 841
dernier inscrit
ferid87