Remplir des colonnes en fonction d'une valeur déterminée

Bonjour à toutes et à tous,

Bloqué depuis un moment sur une macro (je ne suis pas un expert) je fais appelle au forum.

Dans le tableau que je joins, j'aimerai que les colonnes B; D; K et M de l'onglet "OM_2015" se remplissent au fur et à mesure uniquement si la colonne E (article) de l'onglet Data_collect_OM soit égale à W1.

Je ne fais pas de "RECHERCHEV" car je souhaite que les lignes se remplissent sans faire de saut d'une ligne à l'autre...

Selon moi, seul une macro permet de faire cela...

Je vous remercie en avant pour votre aide, que je sais toujours très professionnel.

F. Fortin

PS: Je n'arrive pas à joindre le fichier. Je clique sur parcourir je le sélectionne et quand je clique sur Ajouter le fichier il s'efface... Que dois-je faire?


Taille du fichier: 1.05 Mo (1'107'849 octets)

Salut,

Pour joindre un fichier trop volumineux, tu peux en faire une copie et y supprimer toutes les feuilles qui ne sont pas utiles à ta demande, si des feuilles à nous fournir comptent 100'000 lignes, dis-toi bien que 100 lignes suffisent probablement à ta demande. Si tu as plein d’images, de formes, de mises en forme, de bordures etc. et que tout ceci n’est pas utile à ta démo, supprime-les.

Tu peux ensuite comprimer ton fichier (dans l’explorateur clic droit sur le nom du fichier / Envoyer vers / Dossier compressé) et si ça ne passe toujours pas par les moyens du Forum, passe par le site C-Joint http://www.cjoint.com/

Cordialement.

Bonjour Yvouille,

Merci pour ta réponse, mais même réduit à 338 Ko (346'349 octets) il ne passe pas... Je ne comprends pas...

Le problème doit venir d'ailleurs.

Je ne sais pas comment faire, le problème n'est pas lié à la taille apparemment

Avec mes meilleurs messages

Re,

Si j'avais su que t'étais Genevois ...... Mais non, je plaisante

Une fois compressé ton fichier ne fait que 112 Ko ; je le place donc de cette manière sur ton fil. De plus, ton fichier aurait passé sans problème - même non compressé - sur le site C-Joint que je t'avais conseillé.

Je ne peux pas m'en occuper immédiatement donc si éventuellement quelqu'un passe par là, qu'il vienne en aide à FBF.

Sinon je regarde ça demain dans la journée.

Bonne soirée.

39collecte-ucd-15.zip (111.87 Ko)

Re,

Je ne suis pas certain d’avoir bien compris ta demande ; par exemple je n’ai pas compris si tu voudrais que de nouvelles données que tu aurais ajoutées manuellement sur la feuille ‘Data_collect_OM’ soient ajoutées aux données en place sur la feuille ‘OM_2015’ ou si on peut à chaque fois reprendre toutes les données de la feuille ‘Data_collect_OM’ sur la feuille ‘OM_2015’.

Dans le fichier ci-joint, c’est cette deuxième possibilité que j’ai considérée. A chaque fois que tu sélectionnes la feuille ‘OM_2015’, toutes les données en place dans les colonnes B à G et J à M de cette feuille sont effacées et remplacées par les données de la feuille ‘Data_collect_OM’ qui comportent la mention ‘W1’ dans la colonne E. Donc si tu modifies quoi que ce soit sur ta feuille ‘Data_collect_OM’, les modifications seront visibles sur la feuille ‘OM_2015’ lors de sa prochaine sélection.

Les reports suivants sont effectués pour l’instant : Les colonnes G, F, H et I de la feuille ‘Data_collect_OM’ sont reportées respectivement dans les colonnes B, D, K et M de la feuille ‘OM_2015’.

Comme aucune donnée n’est reportée dans la colonne F de la feuille ‘OM_2015’, les formules qui restent en place dans les colonnes H et I de la feuille ‘OM_2015’ ne renvoient aucune valeur pour l’instant.

Si ce n’est pas ce que tu désires, essaie d’être plus clair dans tes explications.

Encore une question par simple curiosité : j’ai vraiment l’impression de reconnaitre la macro que tu avais dans ton fichier de présentation. Sais-tu où tu l’avais trouvée ? Elle pourrait venir d’un de mes fichiers, mais ces macros circulent tellement sur le net qu’on en retrouve plus toujours la trace.

NB : Je t'avais donné plusieurs conseils afin d'alléger ton fichier. J’ai maintenant enlevé les mises en forme de la colonne A de la feuille ‘OM_2015’ de la ligne 100 à la ligne 1'048'576 et j’ai supprimé des bordures et les formules des lignes 101 à 6000. Ton fichier ne fait plus que 70 Ko Une mise en forme de ton tableau peut être effectuée en fin de macro sur le nombre de ligne exact nécessaire, de même que la mise en place des formules des colonnes H et I.

Amicalement.

Bonjour Yvouille,

Bon, je dois répondre à pas mal de question... Alors oui je suis Genevois

Ensuite, comme tu l'as constaté par toi-même, c'est bien ta macro que j'ai trouvée sur ce forum, qui est excellent cela dit en passant, et ce grâce à des personnes comme toi

Je cherchais à adapter ta macro à mon problème ayant trouvé des similitudes avec une autre demande. Nous sans peine effectivement. Mais comme je le répète souvent s'est en faisant que l'on devient faiseur...

Et surtout MERCI pour ta macro, cf. dernier post, je crois qu'elle répond parfaitement à mon besoin. Chapeau bas!

Une dernière requête, si je peux conserver les lignes dans OM_2015 et n'ajouter que les nouvelles lignes ajoutée dans Data_collect_OM ce serait le nirvana

Pour information, j'ai des données que nous allons remplir mois par mois, par exemple en février nous allons incorporer les données de février (janvier sera déjà enregistré).

En te remerciant encore pour tout et avec mes plus cordiales salutations

Re,

Je rencontre un problème auquel je ne m'attendais pas...

Pour OM_2015, les données des colonnes C; E; F; G; H; I; J; L s'efface à chaque ouverture. Normalement cela ne devrait pas être le cas, seul les données B; D; K; M devraient se remplir les autres devraient rester tels quel.

Je pense que le problème vient de: Range("B3:G" & Rows.Count & " , J3:M" & Rows.Count).ClearContents. Non

J'ai modifié ainsi mais le temps de réponse est assez long:

Private Sub Worksheet_Activate()

Dim i As Integer, k As Integer, DerLig As Integer

Application.ScreenUpdating = False

'Range("B3:G" & Rows.Count & " , J3:M" & Rows.Count).ClearContents

Range("B3:B" & Range("B" & Rows.Count).End(xlUp).Row).ClearContents

k = 2

With Sheets("Data_collect_OM")

DerLig = .Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To DerLig

If .Cells(i, 5) = "W3" Then

k = k + 1

Range("B" & k) = .Range("G" & i) ' Immatriculation

Range("D" & k) = .Range("F" & i) ' Date

Range("K" & k) = .Range("H" & i) ' Poids

Range("M" & k) = .Range("I" & i) ' Prix

End If

Next i

End With

End Sub

Y a t'il un moyen d'améliorer cela?

Merci pour ton aide

J'ai trouvé,

Je mets la ligne à disposition au cas où

Range("B3:B" & Rows.Count & " , D3:D" & Rows.Count & " , K3:K" & Rows.Count & " , M3:M" & Rows.Count).ClearContents

Merci pour tout et bonne journée.

Bonnes salutations du Valais

Rechercher des sujets similaires à "remplir colonnes fonction valeur determinee"