[Resolu] pas de mise a jour apres suppression de lignes avec SpecialCells(xlLastCell)

g.milano

XLDnaute Junior
Bonjour a tous,

Je souhaite copier une liste de numero de commande (colonne A) dont le paiement est par carte de credit. Donc je supprime toutes les lignes qui ont un moyen de paiement different (colonne W) avant de copier la colonne des lignes restantes.
La commande test.Cells(test.Cells.SpecialCells(xlLastCell).Row, 23) fonctionne bien pour la selection de depart. mais lorsque je selectionne la colonne 1 jusqu'a la "nouvelle" derniere ligne avec la meme commande test.Cells(test.Cells.SpecialCells(xlLastCell).Row, 1) sur la colonne A, la selection conserve un nombre de ligne identique a celle d'avant la suppression !! :confused:

Autrement dit : le tableau a 8 lignes. La selection de la colonne W fait 7 lignes (j'enleve la premiere ligne qui contient les titres de colonne). La macro supprime 3 lignes. Il en reste donc 4 + 1 (titre). Mais la selection sur la colonne A fait toujours 7 lignes (les 4 restantes + les 3 cellules vides juste en-dessous).

Ci-dessous le code :

Code:
Sub copybango()
    Dim test As Worksheet
    Dim shiwake As Range
    Dim bangou As Range
    Dim retsu As Long
    Dim i As Long
    Dim kessai As String
    Const CB As String = "クレジットカード"

    Set test = Sheets("test")
    Set shiwake = Range(test.[W2], test.Cells(test.Cells.SpecialCells(xlLastCell).Row, 23))
    retsu = test.Cells.SpecialCells(xlLastCell).Row
    For i = retsu To 2 Step -1
        kessai = test.Range("W" & i).Value
        If kessai <> CB Then
            test.Rows(i & ":" & i).Delete Shift:=xlUp
        End If
    Next i
'code theoriquement bon
    Set bangou = Range(test.[A2], test.Cells(test.Cells.SpecialCells(xlLastCell).Row, 1))
    bangou.Interior.Color = RGB(200, 160, 35) 'permet de verifier la selection faite

J'ai fait modifie la fin du code, et ca marche bien :

Code:
'code qui marche
    saigo = WorksheetFunction.CountA(test.Columns("A"))
    Set bangou = Range(test.[A2], test.Cells(saigo, 1))
    bangou.Interior.Color = RGB(200, 160, 35)

Je voudrais savoir pourquoi la fonction test.Cells(test.Cells.SpecialCells(xlLastCell).Row, 1) ne se met pas a jour apres la suppression des lignes. Je precise que le tableau est complet (pas de ligne vide dans les colonnes A et W qui ont la meme quantite de lignes remplies, ce n'est pas un probleme de donnees mais bien de programmation/langage).

Merci
 
Dernière édition:

Grand Chaman Excel

XLDnaute Impliqué
Re : pas de mise a jour apres suppression de lignes Cells.SpecialCells(xlLastCell).R

Bonjour,

J'ai déjà eu un cas similaire dans le passé... Excel garde en mémoire la dernière cellule même si on efface des lignes ou colonnes.
En utilisant la ligne de code suivante
ActiveSheet.UsedRange
, on peut "remettre à zéro" la dernière cellule.

Donc, à essayer avant ta ligne de code...

A+
 

g.milano

XLDnaute Junior
Re: pas de mise a jour apres suppression de lignes Cells.SpecialCells(xlLastCell).Ro

super, ca marche nickel ! merci.

fin de code corrige :
Code:
'code final bon
    ActiveSheet.UsedRange 
    Set bangou = Range(test.[A2], test.Cells(test.Cells.SpecialCells(xlLastCell).Row, 1))
 

Discussions similaires

Réponses
6
Affichages
142
Réponses
7
Affichages
362
Réponses
29
Affichages
954

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87