Extraction de données vers une autre feuille

Bonjour le forum

J'ai des soucis pour extraire des données d'une feuille vers une autre.

Malgré des recherches dans le forum je n'ais pas trouvé d'exemples pour m'aider.

Fichier joint avec explications de ce que je voudrais faire.

D'avance merci

https://www.excel-pratique.com/~files/doc/exemple01.xls

Bonjour,

regarde le fichier joint, j'utilise le principe du filtre élaboré :

Sub extraction()
Application.ScreenUpdating = False
For i = 2 To 3
    With Sheets(i)
        .[F2].FormulaR1C1 = "=données!RC[-4]=""" & Right(Sheets(i).Name, 1) & """"
        Sheets("données").Range("A1:B21").AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=.Range("F1:F2"), CopyToRange:=.Range("A1:B1"), Unique:=False
        .[F2].ClearContents
    End With
Next i
Application.ScreenUpdating = True
End Sub
  • je balaye les feuilles 2 et 3
  • j'écris une formule dans la cellule F2, qui servira de zone de critères
  • je "sélectionne" de A1 à B21 dans la feuille "données", et j'effectue un filtre élaboré, avec le critère vu au dessus, et l'extraction en A1:B1 de la feuille concernée
  • puis j'efface la formule en F2 (tu peux mettre un quote devant cette ligne pour voir la formule dans l'onglet concerné)

Bon courage

https://www.excel-pratique.com/~files/doc/will60.zip

Bonsoir,

Une petite macro à placer dans un module et à associer à un bouton que tu placeras sur ta feuille "données".

Sub transfert()
'Macro par Dan pour wili60 le 12/02/08 pour Excel pratique
Dim ws As String
Dim ligpd As Integer, ligpc As Integer
Application.ScreenUpdating = False
ws = "données"
ligpd = 2
ligpc = 2
With Sheets(ws)
For Each cel In .Range("B1", Range("B65536").End(xlUp))
Select Case cel
Case Is = "d"
With Sheets("recapd")
    .Cells(ligpd, 1) = Sheets(ws).Cells(cel.Row, 1)
    ligpd = ligpd + 1
End With
Case Is = "c"
With Sheets("recapc")

    .Cells(ligpc, 1) = Sheets(ws).Cells(cel.Row, 1)
    ligpc = ligpc + 1
End With
End Select
Next
End With
End Sub

Amicalement

Dan

re

bonjour felix

et merci de ta réponse rapide, je vais essayer de l'appliquer a mon fichier

J'ai deja une macro dans cette feuille et je ne sais pas si on peu en mettre plusieurs sur une feuille sans problèmes.

Je te tiens au courant

A+

Bonsoir DAN

merci pour ta réponse

Je vais également essayer ta solution et donner des nouvelles dès que possible

cordialement

Bonsoir

Alors, J'ai réussi facilement a adapter la macro de dan bien que mon fichier exemple ne reflète pas du tout le vrai fichier (pas les mêmes colonnes et nombre de feuilles).

D'ailleurs dan si tu pouvais m'expliquer a quoi servent ligpd=2 et ligpc=2

Et pour la solution de felix J'ai des soucis pour la transposer.

En retour d'exécution de la macro j'obtiens "erreur d'exécution 9 l'indice n'appartient pas a la sélection" .

J'aimerais bien savoir où ça ne vas pas (si tu as un peu de temps a perdre avec un nul).

Merci a tous les deux.

A vous relire

Amicalement

Bonsoir,

(si tu as un peu de temps a perdre avec un nul).

t'inquiètes, on a tous commencé pareil...

Pour le souci, peut-être que les indices de tes feuilles ne sont pas 2 et 3,

mais d'autres nombres

Pour le savoir, dans le VBE, à gauche, tu as les feuilles de ton classeur...

et devant, tu as Feuil1, Feuil2 ou.....

exemple : Feuil2(recapd)

peut-être là le pb

re

ok j'avais décalé l'indice des feuilles mais dans ma précipitation peut être pas comme il faut, je testerais demain matin.

@+

Re,

D'ailleurs dan si tu pouvais m'expliquer a quoi servent ligpd=2 et ligpc=2

Ces deux instructions servent à dire à la macro que l'on commence sur les lignes 2 de la feuille recappd (ligpd) et recappc (ligpc).

Amicalement

Dan

Merci Dan de ta réponse et de ton aide

a une autre fois surement

Amicalement

Will60

Bonjour Felix

voila j'ai trouvé mon erreur, en fait j'avais bien decalé les n° de feuilles mais pas les colonnes dans la ligne de code

.[F2].FormulaR1C1 = "=données!RC[-3]=""" & Right(Sheets(i).Name, 1) & """"

Merci pour tout

Cordialement

will60

Rechercher des sujets similaires à "extraction donnees feuille"