Recherche et copie de données de plusieurs onglets

Bonjour tout le monde,

j'aurais voulu savoir si il était possible de rechercher et de copier des données dans plusieurs onglets d'un même classeur et de le recopier ailleurs.

En clair, je cherche à copier des données par rapport à un code (chiffre) dans les13 onglets (de novembre 2023 à novembre 2024) d'un même classeur et de recopier les données des colonnes de " A " à " I " sur la feuille "recherche".

Les "codes" utilisés sont disponible dans l'onglet "data".

Dans le fichier joint, j'ai simulé une recherche avec le code "7560" dans l'onglet "recherche" pour donner une idée de ce que je recherche à faire.

Avec mes remerciements anticipés :)

Bonjour une proposition

Bonjour ghisnob,

c'est exactement comme ça que je voyais la chose :)

ça marche très bien et je t'en remercie

Bonne fin de journée

Merci pour le retour je reste disponible. BON WEEKEND

Bonjour bayard et le forum
Une autre proposition avec une nouvelle feuille "Registre" dans laquelle on enregistre toutes les opérations depuis le début de période, dans un tableau structuré (T_Data)
La saisie des opérations se fait par un formulaire de saisie (cliquer sur le bouton en haut à gauche).
Les opérations saisies peuvent se modifier par ce formulaire en cliquant dans la ListBox.
La ventilation Banque ou caisse reste manuelle( pour l'instant). Possibilité de l'automatiser.
Du coup, les feuilles mensuelles ne servent plus. Le bilan financier serait alimenté par ce tableau (T_Data)

A découvrir

Bonsoir AFEH,

C''est effectivement un gros changement Je ne pense pas aller jusqu’à là mais c'est impressionnent.

je vais tester pour le fun.

merci pour ton boulot!!

Re ghisnob,

Comme je le disais précédemment, ça marche très bien mais sur le fichier que j'avais mis à dispo, qui est plus light que l'original!

Il y a deux feuilles en plus avant les feuilles des mois et 5 feuilles en plus aussi entre le dernier mois et la feuille "data", je ne sais pas si c'est ça qui sème la pagaille mais c'est grave

C'est grave docteur???

Bonjour bayard et le forum
Voici une version améliorée ne tenant compte que la feuille "Registre". Je me suis permis de modifier la feuille "Bilan financier" afin de l'alimenter par la fonction SOMMEPROD. Mais les lignes ou codes budgétaires ne correspondent pas. C'est juste une idée.
Pour la feuille Recherche, on peut faire la même chose en utilisant la fonction Filtre par Codes du formulaire.
Cdt
Papy Henri

Bonjour;

le code c'est :

Sub Recherche()
Dim i, j, k, ligne As Integer
ligne = Cells(Rows.Count, 3).End(xlUp).Row
For i = 3 To ligne
Feuil1.Range("A" & i & " : I" & i).Value = ""
Next

k = 2
For i = 1 To 13
Sheets(i).Select
ligne = Sheets(i).Cells(Rows.Count, 7).End(xlUp).Row
For j = 7 To ligne
If Range("B" & j).Value = Feuil1.Range("L2").Value Then
k = k + 1
Feuil1.Range("A" & k & " : I" & k).Value = Sheets(i).Range("A" & j & " : I" & j).Value
End If
Next
Next
Feuil1.Select

End Sub

en bleu la partie qui permet de passer d'une feuille à l'autre ; il te suffira de voir dans ton code les feuilles des mois vont d'ou a ou et changer

1

même si tu sélectionnes toutes les feuilles tant qu'une n'a pas dans ses cellules allant de B7 à BX, il ne le prendra pas en compte. et aussi s'assurer que feuil1 est bien la feuille qui doit récupérer la recherche ne pas hésiter à le changer en feuil2 ou feuilX si c'est pas le cas . Une capture d'ecran telle que celle que jai mise au dessus pourrait m'aider à vous en proposer un si tu n'y arrives pas.

Bonsoir ghisnob,

le paramétrage de la macro c'est bon, J'ai pour cette ligne

 For i = 3 To 15

et pour la feuil1, je suis à feuil23.

En automatique , ça fonctionne mais pour tester tout ça je suis passé par "F8" et à la ligne:

Feuil1.Range("A" & i & " : I" & i).Value = ""

de mémoire, ça passait sur une autre macro du module 1

Function TotalB(Code)

et mettait le "brun" dans les calculs!

mais sinon ça marche bien.

Encore merci

Bonne soirée

J'ai pas bien compris pour tester je suis passé par F8 et à la ligne

Ça fera : Feuil23.range("A....... cette ligne permet d'effacer les anciennes valeurs de la précédente recherche

Bonjour ghisnob,

Effectivement, la ligne permet d'effacer les anciennes valeurs de la précédente recherche mais de temps à autre et pour des raisons encore inconnu, en utilisant "F8" le curseur saute de module. j'avais déjà eu ce problème avec une autre macro et un as de ce forum avait détecté une "erreur" et l'avais corrigé.

Après ça marche très bien en auto donc pas de problème!

merci de ton suivi et si tu as d'autres idées pour améliorer, si c'est encore possible, la chose pas de problème!!

Bonne journée

Bonjour AFEH,

Excuse moi, je n'avais pas vu passer ta dernière proposition

Il est vrai que ça devient de plus en plus intéressant comme concept.

Je teste et te tiens au courant si besoin de renseignements ou de modifications.

merci à toi

ok le F8 c'est pour vérifier le code pas à pas, il le sautera si

ligne = Cells(Rows.Count, 3).End(xlUp).Row prend une valeur inférieure ou égale à 3, autrement dit aucune donnée sur ta feuille de recherche qui commence au niveau de la 3eme ligne

Ok merci de cette précision!

Rechercher des sujets similaires à "recherche copie donnees onglets"