recopie compliquée tableau avec conditions

francois31170

XLDnaute Nouveau
Bonjour

Merci par avance pour votre aide j’espere.

Je ne suis pas un expert Macro, j’essaie de les construire ou plutôt adapté grâce mes recherches sur cet excellent site, mais là je n’avance pas beaucoup.

Voici mon problème : Je dois réaliser ou actualiser chaque semaine des tableaux excel pour suivre l’activité commerciale et le suivi des facturations.


Mon travail :
- Je dois donc chaque semaine fusionner sur un tableau de reporting « Source » chaque reporting « conseiller » (j‘ai trouvé la macro pour faire cela)
- Extraire de ce tableau certaines données nouvelles et les intégrer dans un autre tableau que je complète manuellement également avec d’autres champs (etat facturation, etc…)

Ce que je dois automatiser:
- Sur mon tableau « Source », je dois identifier les lignes :
o Où la cellule de la colonne « REF » n’est pas vide
o Où la cellule de la colonne « REF » n’est pas déjà présente dans la colonne « REF » du tableau de destination « Tab». (pour éviter de recopier des doublons)
- Puis, si les 2 conditions sont remplies, copier que quelques données de cette ligne : Pas toutes les colonnes mais que certaines colonnes bien identifiées (colonne A, B, D, F par exemple)
- Puis Coller le tout dans mon onglet « Tab» à la suite de la dernière ligne remplie et dans les colonnes identiques (A, B, D, F) mais pouvant être placé dans un ordre différent (ou avec d’autres colonnes entre les 2.) Les titres des colonnes sont bien sur identiques.

La « difficulté » est que j’ai 2 conditions (cellule non vide et non doublon avec autre tableau) et une recopie partielle de quelques données du tableau.

Ci-joint un fichier excel exemple avec :
- Un onglet « Source »
- Un onglet ‘Tab avant’ avant intégration nouvelles des données
- Un onglet «’Tab apres » après intégration des données pour comprendre le résultat espéré.

Dans la pratique bien sur il n’existe qu’un fichier « source » et qu’un fichier « Tab»

En vous remerciant par avance si vous pouvez m’aider, je croise les doigts.


Francois
 

Pièces jointes

  • reportingexcel.xlsm
    16.6 KB · Affichages: 84

Pierrot93

XLDnaute Barbatruc
Re : recopie compliquée tableau avec conditions

Re,

essaye ainsi :
Code:
Option Explicit
Sub macro1()
Dim o As Worksheet, z As Worksheet, cel As Range, dest As Range, x As Range, y As Byte
Dim t() As Variant, i As Byte
Set o = Worksheets("Source")
Set z = Worksheets("Tab.avant")
t = Array(1, 2, 3, 7, 9)
For Each cel In o.Range("A2:A" & o.Range("E65536").End(xlUp).Row)
    If cel.Value <> "" Then
        Set x = z.Range("A2:A" & z.Range("A65536").End(xlUp).Row).Find(cel.Value, , xlValues, xlWhole, , , False)
        If x Is Nothing Then
            If cel.Value <> z.Range("A1") Then
                y = z.Cells.Find("*", , xlValues, , 1, 2, 0).Row + 1
                For i = LBound(t) To UBound(t)
                    Set dest = z.Rows(1).Find(o.Cells(1, t(i)).Value, , xlValues, xlWhole, , , False)
                    If Not dest Is Nothing Then o.Cells(cel.Row, t(i)).Copy z.Cells(y, dest.Column)
                Next i
            End If
        End If
    End If
Next cel
End Sub

Attention, au moins la ligne de titre doit exister dans l'onglet de destination...
 

francois31170

XLDnaute Nouveau
Re : recopie compliquée tableau avec conditions

Re..

Merci Pierrot problème corrigé. :)
GENIAL !

J'ai une question bête, car j'ai vainement essayé de corriger tout cela ce week end mais ....

Pourquoi dans la macro tu fais reference à la cellule E65536 ?
"For Each cel In o.Range("A2:A" & o.Range("E65536").End(xlUp).Row)"

Pour la colonne E et pas Z (avec Z65536 ) ?

Désolé si question bête...

Francois
 

Pierrot93

XLDnaute Barbatruc
Re : recopie compliquée tableau avec conditions

Re,

65536 pour la dernière ligne possible, enfin sous 2003, et E pour la colonne, il me semblait lors des premieres question, que c'était la colonne sue laquelle on pouvait se baser... La colonne A n"étant pas toujours renseignée...

Remarque, tu peux remplacer par la lettre de la colonne sur laquelle te baser pour déterminer la dernière ligne de l'onglet source...

bonne fn d'après midi
@+
 

francois31170

XLDnaute Nouveau
Re : recopie compliquée tableau avec conditions

Rebonjour ...

J'ai un petit soucis qui vient d'apparaitre.
La macro s'arrete et indique "Dépassement de capacité" :confused:

Mon fichier de destination en tout renseigne 13 colonnes.
La macro s'est arretée au bout de 255 lignes uniquement ???
Normal ?
Que faire ?
En vous remerciant.
Francois
 

Discussions similaires

Statistiques des forums

Discussions
312 025
Messages
2 084 749
Membres
102 652
dernier inscrit
Helpmeplz