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 !!
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 :
J'ai fait modifie la fin du code, et ca marche bien :
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
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 !!
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: