Supprimer automatiquement lignes d'un tableau

Bonjour,

J'ai fait basculer les informations d'un tableau à un autre grâce à une fonction SI. En effet, le premier tableau contient les informations (nom, prénom, adresse, etc.) des employés et si ces employés sont en CDI alors leurs informations sont copiées automatiquement grâce à la fonction SI dans un tableau prévu pour leur évaluation.

Or ma fonction est la suivante : =SI(OU(Feuil1!P2="CDI administratif";Feuil1!P2="CDI technique");Feuil1!A2;"") par exemple pour une cellule donnée.

Ainsi mon nouveau tableau contient énormément de lignes "vides" entre mes lignes pleines du au fait qu'il y a des employés qui ne sont pas en CDI.

Je voulais savoir comment faire pour que supprimer ces lignes "vides" automatiquement de mon tableau ? Car ces lignes n'étant pas réellement vides car contenant une fonction, il n'est pas possible, par exemple, de faire avec F5, sélectionner cellules vides, etc.

En vous remerciant par avance !

bonjour,

pour moi, debutant VBA, je vois 2 possibilités:

1- un peu barbare, tu filtres ton tableau en enlevant les cases vides (même si elles ont une formule, elles sont vides de valeur)

tu copies ton tableau filtré (tu n'as plus les lignes vides) et tu le colles EN VALEUR sur un autre onglet.

2- si tu joints ton classeur, je peux te coder un petit qqchose en VBA

à toi de voir

Bonjour,

Une copie anonymisée serait bienvenue

P.

Bonjour, voici un exemple du fichier

re,

j'ignore si tu archives les CDI ou pas , mais avec un filtre avancé tu peux tout trouver, et puis au besoin recopier le résultat dans une autre zone

P.

13classeurexemple.xlsx (343.51 Ko)

re,

voici le fichier avec un vba pour recopier ton tableau

pour tester va chercher la macro 'transfert tableau'

Sub TransfertTableau()

Sheets("Feuil2").Select

With Sheets("Feuil1")
lr1 = .Range("M" & .Rows.Count).End(xlUp).Row
For c = 8 To lr1
    If .Range("M" & c) Like "*CDI*" Then
    lr2 = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row + 1
    Range("A" & lr2) = .Range("A" & c)
    Range("B" & lr2) = .Range("B" & c)
    Range("C" & lr2) = .Range("C" & c)
    Range("D" & lr2) = .Range("D" & c)
    Range("E" & lr2) = .Range("E" & c)
    Range("F" & lr2) = .Range("M" & c)
    Range("G" & lr2) = .Range("N" & c)
    Range("H" & lr2) = .Range("O" & c)
    Range("I" & lr2) = .Range("Q" & c)
    End If
Next
Columns("A:I").AutoFit                     'reglage de la largeur des colonnes
Columns("A:I").HorizontalAlignment = xlHAlignCenter
End With
End Sub

sinon, l'astuce de filtrer/copier/coller marche bien.

Merci à vous tous d'avoir résolu tous mes problèmes !! Tout marche !!

bonjour,

si c'est réglé, peux tu mettre le sujet en résolu stp ( petite croix en hau à droite de ton premier post)

merci

Je le fais de suite. Merci encore !

Rechercher des sujets similaires à "supprimer automatiquement lignes tableau"