Remplir plusieurs feuilles Excel à partir d'une feuille source

Fermé
Molkec Messages postés 7 Date d'inscription mercredi 1 septembre 2010 Statut Membre Dernière intervention 7 mars 2017 - 7 mars 2017 à 13:45
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 8 mars 2017 à 07:58
Bonjour,

Je bloque depuis un moment sur une feuilles de calculs. Comme je n'ai plus fait de VB depuis 15 ans environ je fais toutes mes manips sur Excel avec des formules mais là je n'y arrive pas.

Sur la première feuille appelé "Export" j'ai des informations sur les colonnes B à I avec les titres des colonnes sur la première ligne.
Ensuite j'ai 10 feuilles sur lesquelles je copie les informations nécessaires (colonnes D à I) provenant de la feuille "Export".
Le nom de chaque feuille correspond à une information que je retrouve dans la colonne D du fichier "Export" par exemple : sur la feuille "HCl" je veux ramener toutes les lignes de la feuille Export où il est écrit HCl dans la colonne D. Je tiens à préciser que HCl est écrit au milieu d'autres caractères alphanumériques dans la colonne D exemple : "XXX17/HCl/55".
Sur ma feuille "HCl" l'information de la colonne D de la feuille "Export" doit aller en colonne B, la colonne E de la feuille "Export" doit aller en colonne C, ... et la colonne I de la feuille "Export" doit aller en colonne G.
La première ligne dans laquelle je veux que les informations viennent se remplir est la ligne 3 sur chaque feuille (donc première case remplie B3).
Le nombre de lignes contenant HCl est aléatoire est c'est pareil pour les autres noms recherchés et il peut y en avoir aucune.

J'ai essayé avec des formules mais je n'y suis pas arrivé. Depuis ce matin j'essaye avec VB.

Voici ce que j'ai tapé et qui ne marche pas :

Sub Export()
Dim sheetsource As Worksheet
Dim shetttarget1 As Worksheet
Dim linesource As Range
Dim celltarget As Range
Dim zonesource As Range
Set sheetsource = Worksheets("Export")
Set sheettarget1 = Worksheets("HCl")
Set celltarget1 = sheettarget1.Cells(3, "B")
Set zonesource = sheetsource.Range("D2:i65536")

For Each linesource In zonesource.Rows

If linesource.Cells(4).Value = "HCl" Then
linesource.Copy Destination = celltarget1
End If

Next

End Sub

D'avance merci.
A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
8 mars 2017 à 07:58
Bonjour,

Les feuilles de reception, des infos feuille "export", se mettent a jour seulement des infos du moment ou en cumul?
0