autre probleme de transfere

patgravure35

XLDnaute Occasionnel
Bonjour à tous et a toutes

Voilà comme vous avez dû le voir je ne suis vraiment pas très doué
Avec Excel
J’ai encore une petite question

J’aimerai transférer des données d'une feuille à une autre feuille
La pas trop compliqué mais le hic c que dans ma feuille de saisie j'ai 2 réf produit dans 2 colonnes
Moi j'aimerai les transférer sur une autre feuille mais quand il y a 2 réf produit quel ce positionne sur 2 ligne à la suite

Je vous mets un petit exemple pour que ça parle mieux enfin j'espère lol

Feuil 1 le tab de départ (saisi)
Feuil 2 le tableau que j'aimerai avoir

Merci pour toute l'aide que vous pourrais m’apporter
À bientôt
 

Pièces jointes

  • Classeur3.xlsx
    11.9 KB · Affichages: 46
  • Classeur3.xlsx
    11.9 KB · Affichages: 50
  • Classeur3.xlsx
    11.9 KB · Affichages: 51

CISCO

XLDnaute Barbatruc
Re : autre probleme de transfere

Bonsoir

Une possibilité parmi d'autres, en pièce jointe. A toi d'adapter cela à la longueur réelle de ton fichier.

@ plus
 

Pièces jointes

  • patgravure35.xlsx
    16 KB · Affichages: 43

job75

XLDnaute Barbatruc
Re : autre probleme de transfere

Bonjour patgravure35, CISCO :)

Une solution VBA, surtout utile sur de grands tableaux :

Code:
Private Sub Worksheet_Activate()
Dim h1&, h2&, n&, tablo, i&
With Feuil1 'CodeName de la 1ère feuille, à adapter
  h1 = .Cells(.Rows.Count, 1).End(xlUp).Row
  h2 = Application.CountA(.[F:F])
  n = h1
  tablo = .[A1:G1].Resize(h1 + h2) 'colonne G auxiliaire
End With
For i = 2 To h1
  tablo(i, 7) = i 'repère pour le tri
  If Not IsEmpty(tablo(i, 6)) Then
    n = n + 1
    tablo(n, 2) = tablo(i, 3)
    tablo(n, 4) = tablo(i, 4)
    tablo(n, 5) = tablo(i, 6)
    tablo(n, 7) = i 'repère pour le tri
    tablo(i, 3) = "": tablo(i, 6) = ""
  End If
Next
Application.ScreenUpdating = False
[A:G].ClearContents 'RAZ
With [A1:G1].Resize(h1 + h2)
  .Value = tablo 'restitution
  .Sort [G1], xlAscending, Header:=xlYes 'tri sur colonne G
End With
[G:G].ClearContents 'effacement de la colonne auxiliaire
End Sub
La macro est dans le code de la 2ème feuille et se déclenche lors de son activation.

L'utilisation d'un tableau VBA (tablo) donne une exécution très rapide.

Fichier joint.

Edit : j'ai dupliqué le tableau de la 1ère feuille jusqu'à la ligne 42001.

Durée d'exécution sur Win XP/Excel 2003 => 1,69 seconde.

A+
 

Pièces jointes

  • Transfert(1).xls
    48 KB · Affichages: 38
  • Transfert(1).xls
    48 KB · Affichages: 43
  • Transfert(1).xls
    48 KB · Affichages: 41
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 200
Membres
103 762
dernier inscrit
rouazali