Supprimer les lignes vidse d'un tableau par macro

ced5757 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je cherche a supprimer les lignes vides d'un tableau en passant par un macro.
seulement les manipulation que je peux faire d'habitude ne marche pas

merci d'avance

9 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Exemple tu veux supprimer les lignes dont les cellules de la colonne A sont vides, tu peux utiliser cette ligne de code

    Range("A2:A65000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    1
  2. ced5757 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
     
    merci mike tu m'as beaucoup aidé aujourd'hui je vais en profite pour poser une autre question en même temps

    j'ai un nom dans une cellule et je voudrais faire une macro qui recherche ce nom dans une colonne d'un tableau

    c'est comme si j'utilise le filtre de ma colonne pour rechercher le nom sauf que je prend le nom que je recherche dans un cellule en dehors du tableau

    comment faire ? car pour le moment j'arrive a faire la recherche par macro sauf que si le nom change dans ma cellule il n'en tien pas compte
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Tu peux réexpliquer ça, tu as un nom dans une cellule exemple titi dans A2
    et tu veux sélectionner ou l'adresse de la cellule qui contient ce mot titi dans la colonne D par exemple, c'est cela

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. ced5757 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
       
      oui sauf que plusieurs cellules vont contenir titi.
      l'objectif et de supprimer les lignes de mon tableau qui contiennent titi dans la colonne D
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    voila

    Dim i As Long
    For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    If Cells(i, 4) Like "titi" Then Rows(i).Delete
    Next

    tu peux également faire référence à une cellule contenant le critère exemple la cellule A1

    Dim i As Long
    For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    If Cells(i, 4) Like [A1] Then Rows(i).Delete
    Next

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ced5757 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
     
    c'est parfait mais cela ne marche pas si je mets ma cellule a la place de titi car le nom dans la cellule va changer régulièrement

    il faudrait juste que je puisse mettre ma cellule a la place de titi
    j'ai fait ceci mais ca ne marche pas

    Dim i As Long
    For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    If Cells(i, 4) Like "B11" Then Rows(i).Delete
    Next
    0
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    dans mon post précédent tu as les deux propositions, soit tu saisis le nom dans le code ou tu fais référence à une cellule dans mon exemple la cellule A1
    0
  8. ced5757 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
     
    arf je n'ai vus que la moitié de message... mes yeux ne sont plus très performant apparemment.

    je pense que ca devrait beaucoup mieux marcher
    0
  9. ced5757 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
     
    par contre comment prendre une valeur d'une cellule sur une autre feuille ?
    0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    le plus simple est de nommer la cellule exemple la cellule sur la feuille xxxx est nommée titi, la ligne de commande sera

    If Cells(i, 4) Like [titi] Then Rows(i).Delete
    0