[VBA] Copie de ligne avec calcul de colonne sous conditions

plombiero

XLDnaute Nouveau
Bonjour tout le monde,

Il s'agit d'un problème de copie de données.

Voici un exemple concret de ce que je voudrais réaliser :

Code:
Classeur1 Feuille2
A       B       C       D       E   
N°        INFOS         en €    Description
1         Alpha         25      Truc
2         Beta          30      Muche
[COLOR="SeaGreen"]3         Gamma         25      Chose
3         Gamma         20      Chose
3         Gamma         -10     Chose[/COLOR]
4         ...

[COLOR="Red"]devienne via macro [/COLOR]
Classeur2 Feuille2

A       B       C       D
N°      INFOS   en €    Description
1       Alpha   25      Truc
2       Beta    30      Muche
[COLOR="seagreen"]3       Gamma   35      Chose[/COLOR]
4       ...

L'idée :
Ce serait de copier les lignes d'une feuille de classeur à une autre feuille d'un autre classeur.
Mais surtout, si il y a plusieurs lignes qui ont le même n° sur la même colonne (par exemple A), alors on colle l'incrémentation des plusieurs lignes du classeur 1 en une seule ligne sur le classeur 2 en faisant une somme sur une colonne spécifique (ici, c'est la D).

Attention : Certaines colonnes que je dois copier sont "Merge" à la base (comme B et C dans mon exemple) et les cellules de destination non. Je passe par un "Unmerge" avant de copier le bébé donc mais je ne peux pas me permettre de copier comme un sauvage toutes les lignes.

Ce que j'ai commencé à faire :

Ouvrir le classeur1 à partir du 2.
Selectionner la feuille 2 du classeur 1.
Sélectionner l'ensemble de mes données du classeur 1 sur lesquelles je veux executer la macro.
J'ai essayé la méthode des sous.totaux sans succès, donc je retourne vers vous pour éventuellement trouver une solution.

Ici le début de mon code mais qui n'a pas grand chose à voir avec le problème auquel je suis confronté.
Code:
Sub copier_cellules_entre_classeurs()

Dim lastlineselect As Integer
Dim filetoOpen
Dim Erreur
Dim rw
Dim ligne
Dim nb_lignes

'Nomme le workbook n°2 en "ici"
ici = ThisWorkbook.Name

'Ouvre le workbook n°1 et je le nomme en "ouvert"
filetoOpen = Application.GetOpenFilename("Excel (*.xls), *.xls")
If filetoOpen <> False Then
Workbooks.Open Filename:=filetoOpen
ouvert = ActiveWorkbook.Name


'Ma sélection commence à partir du B7
Workbooks(ouvert).Activate
Sheets("Feuille2").Activate
ActiveCell.SpecialCells(xlLastCell).Select
lastlineselect = Selection.Row
If lastlineselect < 7 Then lastlineselect = 7
nb_lignes = lastlineselect - 6

Voilà où je reste bloqué, si quelqu'un avait de quoi m'aider, je lui en serais fortement reconnaissant !

Merci d'avance,

Damien
 

plombiero

XLDnaute Nouveau
Re : [VBA] Copie de ligne avec calcul de colonne sous conditions

Bonjour Hasco,

J'ai décidé de relancer un fil car malheureusement le titre choisi (suite à une erreur de manipulation) ne rencontre pas beaucoup de succès.

Bien évidemment, la problématique reste la même :)

Merci encore :D

Damien
 

Discussions similaires