Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Aidez moi je craque

storme

XLDnaute Nouveau
Bonsoir,

Je me permets de vous solliciter car j'ai un gros souci que je n'arrive pas à résoudre.
Je vous explique j'ai un classeur sur lequel j'ai plusieurs onglets.
Un onglet :tva et no tva
Mon souhait serait d'arriver en faire un seul et récupérer certaines colonnes pour obtenir les clients concernés à partir du n° de pièce

les coclonnes renseignes sur la feuille
Pouvez-vous m'aider svp ça fait des heures que je suis dessus et je craque là?
 
Solution
cad ?le fichier est trop volumineux
Le fichier n'est pas indispensable mais il va falloir vous débrouiller toute seule.

Placez cette macro dans le code de la feuille "resultat" :
VB:
Private Sub Worksheet_Activate()
Dim resu(), d As Object, tablo, i&, n&
ReDim resu(1 To Rows.Count, 1 To 8)
Set d = CreateObject("Scripting.Dictionary")
'---feuille encours (création de la liste des numéros)---
tablo = Feuil1.UsedRange.Resize(, 4)
For i = 2 To UBound(tablo)
    If tablo(i, 4) <> "" Then d(tablo(i, 4)) = ""
Next
'---feuille tva---
tablo = Feuil2.UsedRange.Resize(, 34)
For i = 2 To UBound(tablo)
    If d.exists(tablo(i, 1)) Then
        n = n + 1
        resu(n, 1) = tablo(i, 1)
        resu(n, 2) = tablo(i, 7)
        resu(n, 3) =...

job75

XLDnaute Barbatruc
En regardant bien l'image de votre post #19 je vois que vous avez placé la macro dans Module1.

Ce n'est pas du tout ce qu'il faut faire, j'ai bien dit : dans le module de la feuille resultat.
 

storme

XLDnaute Nouveau
ok j'ai modifié mon erreur
par contre les lignes tiers payeur ne se reportent pas

exemple par rapport au numéro de pièce en cellule active qui est présent dans la feuille en cours mais la référence du client ne se reporte pas
 

storme

XLDnaute Nouveau
bonjour JHA,

merci pour votre retour. je souhaiterai surtout faire apparaître le tiers payeur à partir du numéro de pièce les clients présent de la feuille encours (C-CLIENT "colonne A") qui comporte plus de 3000 lignes en les comparant à celles des feuilles tva (colonne g)et no tva (colonne l); est reporter les montants des factures.
 

storme

XLDnaute Nouveau
Alors comme je vous l'ai explique je suis novice en vba du coup comprendre les lignes de codes assez complexe pour moi . PAr contre comme je vous l'ai dit la colonne "A " appelé C-CLIENT du fichier encours correspond au tiers payeur des autres feuilles
 

job75

XLDnaute Barbatruc
PAr contre comme je vous l'ai dit la colonne "A " appelé C-CLIENT du fichier encours correspond au tiers payeur des autres feuilles
D'accord, alors voyez ce fichier (2) et la macro complétée :
VB:
Private Sub Worksheet_Activate()
Dim resu(), tablo, i&, n&
ReDim resu(1 To Rows.Count, 1 To 8)
'---feuille encours---
tablo = Feuil1.UsedRange.Resize(, 12)
For i = 2 To UBound(tablo)
    If tablo(i, 4) <> "" Then
        n = n + 1
        resu(n, 1) = tablo(i, 4)
        resu(n, 2) = tablo(i, 1) 'correspond au Tiers Payeur
        resu(n, 3) = tablo(i, 3)
        resu(n, 6) = tablo(i, 9)
        resu(n, 7) = tablo(i, 12)
        resu(n, 8) = Feuil1.Name 'repérage feuille
    End If
Next
'---feuille tva---
tablo = Feuil2.UsedRange.Resize(, 34)
For i = 2 To UBound(tablo)
    If tablo(i, 1) <> "" Then
        n = n + 1
        resu(n, 1) = tablo(i, 1)
        resu(n, 2) = tablo(i, 7)
        resu(n, 3) = tablo(i, 19)
        resu(n, 4) = tablo(i, 15)
        resu(n, 5) = tablo(i, 17)
        resu(n, 6) = tablo(i, 16)
        resu(n, 7) = tablo(i, 34)
        resu(n, 8) = Feuil2.Name 'repérage feuille
    End If
Next
'---feuille notva---
tablo = Feuil3.UsedRange.Resize(, 28)
For i = 2 To UBound(tablo)
    If tablo(i, 23) <> "" Then
        n = n + 1
        resu(n, 1) = tablo(i, 23)
        resu(n, 2) = tablo(i, 12)
        resu(n, 3) = tablo(i, 26)
        resu(n, 6) = tablo(i, 28)
        resu(n, 7) = tablo(i, 27)
        resu(n, 8) = Feuil3.Name 'repérage feuille
    End If
Next
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A2] '1ère cellule de destination, à adapter
    If n Then .Resize(n, 8) = resu
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 8).ClearContents 'RAZ en dessous
End With
Columns.AutoFit 'ajustement largeurs
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
 

Pièces jointes

  • recherche donnees(2).xlsm
    28.4 KB · Affichages: 2

storme

XLDnaute Nouveau
merci pour votre patience mais je crois que je suis nulle en explication donc je vais essayer de mieux m'expliquer .
je voudrais qu'à partir de la feuille des encours (fichier le plus récent ) et des numéros de pièces présentent dans ce tableau faire une recherche dans les autres feuilles (tva et no tva) et si le numéro de pièce correspond les coller dans la feuille résultat.
Les feuilles tva et no tva sont des extractions du journal de vente avec pour la feuille tva les infos présentent dans les colonnes "O;P;Q" respectivement

Montant HTMontant TTCMontant taxe
sont en plus et il me les faut.

j'espère être plus claire
 

Discussions similaires

Réponses
2
Affichages
686
Réponses
8
Affichages
499
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…