Report des lignes avec données/Effacer lignes vides

Bonjour,

J'explique mon problème. J'ai un chiffrier Excel avec plein d'équipements associés à un prix. Chaque équipement est sur une ligne et un prix lui est associé. J'ai configuré mon chiffrier pour monter des soumissions. J'ai une colonne quantité et lorsque j'ajoute 1, le prix de l'équipement est reporté à la fin de la ligne. Hors, ce fichier est mon gabarit en quelque sorte et pour une soumission, j'ai peut-être 3-5 équipements à fournir.

Je voudrais que les lignes ayant la quantité 1 dans la colonne quantité au lieu d'une case vide se rapportent dans la feuille suivante, un résumé de ma soumission. Je voudrais que le tout se fasse automatiquement sans avoir à faire manuellement un copier-coller de mes 3-5 lignes chaque fois.

Merci de votre aide!

Salut kawinebacon,

Tu pourrais presque renommé ton fil "Report des lignes avec données", mais ce n'est pas si important.

Par contre tu auras beaucoup plus de succès si tu joins ton fichier exemple (si jamais, remplaces-y les données confidentielles, mais montre-nous la structure réelle de celui-ci).

A la prochaine

joindre un fichier

Bonjour Yvouille,

Tout d'abord, merci de t'être donné la peine de répondre. Tel que tu me l'as recommandé, jai "simulé" un chiffrier excel pour expliquer mon problème. Je le met en pièce jointe.

Les lignes ayant un prix sont en roses dans la première feuille nommée "Liste de prix". Cependant, dans la feuille nommée "Résumé", je veux reporter seulement les cases en rose, tel que démontré ici manuellement (sans programme).

Merci de votre aide!

Bonsoir,

J'utilise ici la colonne "O"

Sub Filtre()
Dim Lg%, Lg2%, i%
'Macro par Claude Dubois pour "kawinebacon" Excel-Pratique le 01/03/11
    Application.ScreenUpdating = False
        Lg = Range("b65536").End(xlUp).Row
        '--- prépare ---
        Cells(5, "o") = Cells(5, "a")
        Cells(5, "n") = "Prix"
        Cells(2, "o") = "=f6>0"
    For i = 6 To Lg
        If i >= Lg Then Exit For
        Lg2 = Application.Min(Lg, Cells(i, "a").End(xlDown).Row)
        Range(Cells(i, "o"), Cells(Lg2, "o")) = Cells(i, "a")
        i = Lg2 - 1
    Next i
        '--- filtre ---
    Range("b5:o" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("o1:o2"), CopyToRange:=Sheets("Résumé").Range("a3:e3"), Unique:=False
        Cells(5, "n") = "Total"
        Columns("o").ClearContents
End Sub

Amicalement

Claude

Voici une solution.

Bonne soirée.

Edit immédiate : Oups ! J'avais pas vu que Claude avait déjà posté une réponse

WOW!

Merci infiniment à vous deux! C'est vraiment apprécié! Mon seul et unique cours de VBA était vraiment loin...

Merci!

Bonjour,

a resolu3

Bonjour à tous,

Les programmes conseillés par Yvouille et Dubois fonctionnent bien. Cependant, j'aimerais faire un ajout dans la programmation VB. Est-il possible que lorsque l'on pèse sur le bouton "Report" ou "Extrait" des fichiers Excel données en exemple par Yvouille et Dubois, les données précédemment mises (lors du dernier "Report" ou "Extrait") dans le tableau de la feuille " Résumé" soit effacées avant d'en inscrire des nouvelles?

Merci de votre aide encore une fois, cela m'est extrêmement utile!

Kawinebacon

Bonsoir,

Sur mon fichier, les résultats sont réactualisés à chaque fois

édit: je crois comprendre ce que tu demande, effacer les quantités sur la 1ère feuille,

ajoute cette ligne à la fin

        Range("f6:f" & Lg).ClearContents
End Sub

Amicalement

Claude

Ou à la fin de mon code, juste avant End Sub :

Range("F6:F" & i - 1).ClearContents

Bonne soirée

Rebonjour à vous deux!

Encore une fois, merci infiniment pour vos réponses rapides.

Je reviens cette fois-ci avec ma feuille de calculs quasi finale. Tout marchait bien, jusqu'à ce que je tente de rajouter des lignes de programmation ainsi que des sections dans mon programmes. Je suis partie de la programmation de Yvouille et j'ai élaboré.

Voici ce que je voudrais :

1) Les lignes 8 à 159 de la feuille "Liste de Prix" se rapportent dans les lignes 10 à 31 de la feuille "Résumé" lorsque je pèse sur le bouton RÉSUMÉ.

2) Les lignes 166 à 176 de la feuille "Liste de Prix" se rapportent dans les lignes 35 à 47 de la feuille "Résumé" lorsque je pèse sur le bouton PRIX UNITAIRE.

Finalement, tel que j'ai tenté de faire dans la programmation et que vous le remarquerez, je veux que les colonnes F, B, C, E et N de la feuille "Liste de prix" deviennent respectivement les colonnes A, B, C, D, E de la feuille "Résumé". Je veux de plus que le tout s'efface automatiquement de la feuille Résumé lorsque je repèse sur le bouton RÉSUMÉ pour entrer de nouvelles données. Mais ça, ça le faisait déjà. Est-il possible d'ajouter un bouton REMISE À 0 remise à 0 des colonnes E et F de la feuille "Liste de prix" afin que je puisse remettre à 0 cette feuille mais seulement lorsque j'appuie sur le bouton.

Vous trouverez en pièce-jointe l'exemple de mon chiffrier là où il en est rendu.

Encore une fois, Merci infiniment pour vos réponses. Vous avez définitivement réponse à tout!

Kawinebacon

Salut Kawinebacon,

Ta demande a complètement changé par rapport à la première fois. Tu as deux macros nommées "Résumé". Tu indiques dans ton texte vouloir traiter les lignes 8 à 159, mais dans ta macro tu inscrits 8 à 193. Ton bouton "Prix unitaire" est relié à une macro inexistante De plus, j'espère que cette fois, ton "exemple" ressemble plus à la réalité.

J'ai regroupé les deux macros dans un seul module. Normalement ça devrait fonctionner comme tu le désires

Si tu as plus de 22 lignes à reporter parmi les lignes 8 à 159, tu auras un problème de place dans ta feuille "Résumé".

Solution possible : Le tableau "Items" de la feuille "Résumé" pourrait comporter moins de lignes au départ (seulement 1, seulement 5, autre ?) et s'agrandir selon le nombre de lignes à traiter. Idem pour le tableau "Produits chimiques" ?

A te relire

Bonjour à tous,

Avez-vous tester mon fichier,

il n'y a pas ces problèmes de lignes et plages !

Amicalement

Claude

Salut Claude,

Ton fichier fonctionne probablement parfaitement, mais comme je l'indique à Kawinebacon, sa demande à complètement changé (il veut maintenant reporter deux tableaux différents et indépendamment l'un de l'autre à deux endroits différents. De plus, il désire vider les colonnes E et F d'une manière autonome).

Mes derniers commentaires se réfèrent à son nouveau fichier.

Bonnes salutations.

Bonjour, Yvouille

Ok, je te laisse la main car pris ailleurs

Bonne journée

Claude

Bonjour à vous deux,

En effet, les choses évoluent vite, j'en suis désolée. Je travaille ce fichier pour mon travail et tout allait bien jusqu'à ce que je veuille créer une nouvelle macro...J'ai constamment des nouvelles demandes d'améliorations de ce fichier de la part de mon employeur et je dois y remédier. Vous m'êtes donc d'un grand secours.

Merci de vous donner la peine de répondre, je regarde ce fichier et vous reviens si j'ai des questions!

Merci infiniment!

Karine

-- 08 Mar 2011, 15:02 --

Bonjour Yvouille,

J'ai testé ton fichier. Le tout marche très bien. Merci. Cependant, j'avais comme idée ce que tu as proposé, soit que le chiffrier (les deux tableaux Items et Produits chimiques s'ajustent selon le nombre de lignes au départ). Il est très rare que j'ai plus de 3-4 items...cependant, certains prix, j'ai au-dessus de 10 items. Il serait donc pertinent que "ma facture RÉSUMÉ" s'ajuste selon le nombre d'items sans que je sois obligée de faire la mise en page manuellement en supprimant des lignes chaque fois. Ta programmation est parfaite et est maintenant intégrée dans mon chiffrier confidentiel. Quelles sont les lignes de programmation VBA que je dois rajouter pour pouvoir faire ce que j'ai dit?

Merci de ton aide encore une fois,

Karine

Salut Karine,

Merci de rester sur le forum pour continuer la discussion Je serais très intéressé à chercher une solution à tes divers problèmes, cependant je dois te dire que j'aurais peu de temps jusqu'à la semaine prochaine.

Avec un peu de chance, quelqu'un d'autre avancera avec ce fil avant, autrement patience !!

Bonnes salutations.

Merci Yvouille!

Je serai patiente! Tu m'as déjà été d'une aide précieuse!

Si quelqu'un d'autre peut répondre à ma question en prenant le dernier chiffrier posté par Yvouille, ce serait apprécié.

Karine

Salut Karine,

Voici - un peu plus tôt que prévu - une solution pour régler automatiquement la grandeur du tableau "Items" sur la feuille "Résumé" (donc avec l'utilisation du bouton "Résumé"). Tu remarqueras que la dernière ligne reste toujours vide.

Si ça te convient, on pourrait faire la même chose sur le deuxième tableau "Produits chimiques" de la page "Résumé". N'as-tu pas de "Total" dans ce tableau ??

Pour l'instant le bouton "Prix unitaire" ne fonctionne plus, dans l'attente de ta réponse.

A te relire.

35kawinebacon-v3.zip (37.11 Ko)

Yvouille, ce que tu es efficace!

Merci. Ce que le programme fait me plaît bien et en effet, j'aimerais l'appliquer aussi pour le 2e tableau, soit celui des prix unitaires. J'ai essayé de faire la programmation moi-même, cependant, je dois dire qu'il y a quelque chose qui m'échappe. Cela doit être au niveau de la cellule à choisir (ex. C10 comme pour Items) car elle change constamment selon le nombre de lignes restantes du tableau items.

Par contre, la mise en page du tableau Items n'est pas conservée. (met des lignes noires épaisses partout).

J'essaie de plus de rajouter un message d'alerte tel que tu peux voir (J'ai écrit un forum là-dessus) qui ne semble pas fonctionner pour une raison que j'ignore...

OUFF...le VBA!

Je ne te le répèterai jamais assez, merci pour ton aide!

Karine

Rechercher des sujets similaires à "report lignes donnees effacer vides"