Macro supprimer lignes vides

Bonjour;

J'aurais besoin d'une grande aide pour pouvoir boucler mon dossier à temps,

je suis en train de faire un fichier Excel servant à répartir les tâches entre salarié, le système doit être entièrement automatique pour éviter les saisies inutiles.

J'ai donc rentré quelques formules qui fonctionnent mais lorsque le tableau des tâches par salarié est remplis il y a des cases vides ( car ttes les tâches ne sont pas effectués par le même, ni forcément dans l'ordre), et je n'arrive pas a les ordonner a la fin du tableau pour une meilleure mise en page car les cellules contiennent des formules il est donc impossible de les trier.

Il faudrait faire un copier coller automatique, ou un macro... quelque chose comme ça mais malheureusement je n'y arrive pas !

Quelqu'un pourrait il m'aider d'urgence silvousplait ? ?

Merci d'avance

J.

Bonjour,

Un essai via macro :

Cordialement,

Merci beaucoup ce fonctionnement me convient trés bien !

Mais serait -il possible de savoir comment tu as fait exactement ? car je n'arrive pas a le reproduire...

Euh oui, par contre quel est ton niveau avec excel ? Sais-tu créer des macros basiques ou ajouter un bouton comme je l'ai fait ou pas du tout ?

Car ne connaissant pas excel 2000, je vais avoir du mal à t'aider pour rajouter les onglets / menus de développement de macros (ou vérifie que tu as bien un onglet "Developpeur" en haut d'excel vers les onglets Formules / Données / Révision / Affichage / ...)

Cordialement,

Bonjour,

J'ai élaborer un classeur comprenant plusieurs feuilles concernant la planification des tâches entre salariés.

Lorsque l'on rentre les prénoms des salariés en face des tâches à réalisés celles ci se reportent automatiquement sur la feuille individuelle du salarié.

Les taches sont réparties en 4 phases, pour l'instant je n'en ai listé que deux : Usinage et Finition

J'ai donc mis une macro pour copier coller les tâches sur la fiche individuelle sans les formules mais je n'arrive pas a mettre une macro pour supprimer automatiquement les lignes vides dans la liste; car les phases sont copier coller l'une en dessus de l'autree mais le salarié n'effectue pas forcément toutes les tâche a la suite, et peu parfois alterner selon les meubles en cours entre montage fintion usinage etc....

donc les tâches sont polyvalentes et doivent pouvoir être classées selon les désirs du chef d'atelier mais pour ça je me débrouille.

Quelqu'un pourrait t'il simplement me créer une macro pour supprimé les lignes vides de la cellule B6 à B100 ? en donnant un nom simple " supp lignes vides ".

Merci d'avance !

Salut Justine,

Sur quelle(s) feuille(s) veux-tu supprimer les lignes vides ? Faut-il simplement décaler les cellules de la colonne B vers le haut ou faut-il que les cellules d'autres colonnes suivent ?

A te relire.

Bonjour,

la proposition faites sur ton autre poste n'était pas bonne, ou c'est juste que tu n'arrives pas à la mettre en place ?

https://forum.excel-pratique.com/excel/probleme-marco-t28250.html

Cordialement,

Enfèt c'est sur les feuilles des salariés.

Celle ou j'ai mis l'exemple c'est celle qui s'apelle "Patrick"

et ca serai essentiellement la colonne B a partir de la Cellule B6

J'ai bien essayer le filtre automatique mais il me supprime des lignes sur le côtés et ce n'est pas bon car cela modifie ma feuille entière.

Les tableau jaunes sont enfèt des tableau 'tampons' qui permette le copier coller vers B6 mais lorsque la macro s'éffectue , il y a forcément des lignes vides quelque part car le salarié n'effectue pas tte les taches dans ttes les phases.

Salut Justine, Salut Zirac,

Justine, si Zirac a déjà commencé quelque chose, je te prie de répondre à ses questions et je pense qu'il va continuer ce qu'il a commencé.

Cordialement.

Merci du conseil,

Non excel 2000 n'a pas d'onglet développeur,

Mais je n'ai pas les codes pour compléter ma macro pour pouvoir supprimer les lignes vides de la case B6 à B100 sur ma feuille "Patrick" et je ne sais malheureusement pas comment faire...

Mon dossier doit être testé demain et je n'y suis toujours pas arrivé

Bonjour,

Le fichier que tu as fourni a Yvouille c'est ton fichier réél ? si celui ci marche tu peux travailler avec ou il faudra que tu transposes dans ton vrai fichier après pour le présenter demain ?

Dans ton onglet Patrick, dans ton tableau de droite sur la même ligne on a parfois un descriptif usinage et un descriptif finition, bon je me doute que c'est soit toute la colonne de l'un ou de l'autre qui apparait en colonne B, mais comment se fait ce choix et où ?

Et donc il ne faudrait que masquer les cellules de la colonne B et pas les lignes entières comme je t'avais proposé dans mon 1er fichier, ou les lignes entières du moment qu'elles sont masquées et pas effacées, cela te va ?

Cordialement,

PS : Yvouille, n'hésites pas à jeter un oeil aussi, je finis ma journée d'ici 1h30, j'ai encore un pe ude boulot à faire, donc si elle a besoin de terminer son fichier absolument pour demain, je ne pense pas avoir le temps de fournir quelque chose dans les temps.

Merci c'est gentil de prendre du temps pour mon travail.

Lorsque les lignes sont masquées elles risque de faire également disparaitre les lignes du tableau finition et usinage

En fait, dans les tableau jaune il y a toutes les formules en rapport avec la feuille 1 qui est la liste des taches, et lorsque l'on inscrit le nom du salarié sur la feuille 1, la tache se reporte sur la feuille individuelle dans les tableaux jaunes.

ensuite il y a une macro pour que les valeurs des tableaux jaunes se colle sur le tableau individuel de gauche ( qui est au final le seul a apparaitre a l'impression), mais les copier coller se font les uns a la suite des autres, c'est a dire que la liste des tache en usinage fait 65 lignes , donc aprés 65 lignes le copier coller des taches de finition s'effectue, mais cela engendre enormément de lignes vides au final car les salariés ne font jamais 60 taches en un jour ^^

Je voudrais juste une formule pour que ces lignes vides disparaissent automatiquement


Je vous renvoi mon fichier au cas ou.

Re,

Bon j'ai repris le même systeme que je t'avais proposé le 1er coup, j'ai fait un truc vite fait pour voir si déjà cela te va.

Donc j'ai ajouté un bouton sur ton onglet Feuil1 qui affiche / masque les lignes vides de tous les onglets à partir de l'onglet 5 (Patrick) jusqu'au dernier, pour les lignes allant de 6 à 100.

Pour masquer les lignes => clicker sur le bouton.

Pour les faire apparaitre => choisir Oui en Cellule J3 dans le menu déroulant pour la remise à zéro et ensuite appuyer sur le bouton.

Par contre :

Ne pas renommer ton onglet Feuil1 ou alors il faut changer le nom dans la macro

Ne pas insérer d'onglet avant ton Onglet (Patrick), il faut toujours qu'il y ai tes Feuil 1 à 4 car la macro ne commence qu'à partir du 5ème onglet, ou alors il faudra aussi modifier la macro si tu ajoutes des feuilles avant le 5ème onglet. Après le 5ème onglet, tu peux rajouter autant d'employés que tu veux, dans l'ordre que tu veux, ils seront pris en compte dans la macro.

Je ne me suis pas occupé d'améliorer la mise en page, je t'avoue que je n'ai pas trop le temps tout de suite.

Enfin si ça te va bien, et que ça suffit pour ta présentation de demain, au pire on pourra faire quelque chose d'un peu plus travaillé à partir de lundi.

Cordialement,

C'est entendu, merci beaucoup de ton aide et de ton temps précieux !

Je vais bosser dessus ce week end car ma journée est bientot finie aussi !

Bon week end, si jamais j'ai besoin je vous renvoi quelques informations lundi !

Encore merci !

Bonjour à tous,

Brut de décoffrage ! et d'après ce que j'ai pu comprendre,

ici, les tableaux de droite ne servent à rien

Bien sûr on pourrait faire un onglet par opérateur, mais est-ce bien utile ?

il faudrait un fichier un peu + avancé. (Phases, Temps passé)

la finition est en ligne 65

Dans le VBE de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
Dim f As Worksheet, f2 As Worksheet
    If Not Application.Intersect(Target, Range("d2")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub

            Set f = Sheets("Feuil1")
            Set f2 = Sheets("Feuil2")

        '--- usinage ---
        Range("f2") = "=Feuil1!b6=$d$2" 'critère
        f.Range("a5:d" & f.[a65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("f1:f2"), CopyToRange:=Range("b5:c64"), Unique:=False

        '--- finition ---
        Range("f2") = "=Feuil2!b6=$d$2" 'critère
        f2.Range("a5:d" & f2.[a65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("f1:f2"), CopyToRange:=Range("b65:c65"), Unique:=False
        Range("f2").ClearContents
    End If
End Sub

Bonne journée

Claude

Bonjour a toi et merci de ta proposition,

Mais le tableau de droite est le seul tableau qui sort à l'impression, et les taches doivent apparaître dans le même tableau car le chef d'atelier est susceptible de changer l'ordre des tâches, ou de mélanger une tâche de finition avec des tâches d'usinage. ( les tableaux suivant sont également utiles même s'il ne sont pas encore remplis, il ne m'a pas encore donné la liste des tâches de toutes les phases il manquera donc le montage et le vernis )

En fait le chef d'atelier doit pouvoir organiser et classer ses tâches comme il le veut.

Et je suis obligée de garder les différentes feuilles individuelles, car il y en a une par salarié et par jour, le chef d'atelier établie le planning journalier des salariés tout les soirs pour le lendemain.

Ce que j'essaye de faire c'est simplement que lorsque l'on exécute la macro 4, les cellules vides n'aparaissent pas et toutes les tâches soient en haut de mon tableau, le chef d'atelier va lui ensuite placer les N° sur le côté et les classé comme il le veut.

Voila, merci d'avance

Justine.

Bonjour,

Ce que j'essaye de faire c'est simplement que lorsque l'on exécute la macro 4, les cellules vides n'aparaissent pas et toutes les tâches soient en haut de mon tableau, le chef d'atelier va lui ensuite placer les N° sur le côté et les classé comme il le veut.

en remplacement de la macro 4

Sub Déscriptif()
Dim Lg&, i&
    Application.ScreenUpdating = False
    Range("H6:H65").Copy
    Range("b6").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    '--- supprime espaces et lignes vides ---
    Lg = Range("b" & Rows.Count).End(xlUp).Row
    For i = Lg To 6 Step -1
        Cells(i, "b").Value = Trim(Cells(i, "b").Value) 'espace ou apostrophe
        If IsEmpty(Cells(i, "b")) Then Range("a" & i).Resize(1, 3).Delete Shift:=xlUp
    Next i
    '--- bordures ---
    With Range("a6:c" & Lg)
        .Borders(xlEdgeLeft).Weight = xlMedium
        .Borders(xlEdgeTop).Weight = xlMedium
        .Borders(xlEdgeBottom).Weight = xlMedium
        .Borders(xlEdgeRight).Weight = xlMedium
        .Borders(xlInsideVertical).Weight = xlThin
    End With
    Application.Goto Range("a1"), Scroll:=True
End Sub

c'est un peu tordu ton affaire !

Bonne journée

Claude

En effet c'est un peu tordu, mais en mélangeant un peu de tes propositions avec celles de Zirak j'ai réussi a faire exactement ce que je voulais !

Merci beaucoup d'avoir pris le temps de m'aider tout les deux !

Je vous souhaite une agréable journée !

et Merci encore !

Justine

N'oublie pas la petite formalité

a resolu3
Rechercher des sujets similaires à "macro supprimer lignes vides"