Macro avec resize pour colonnes et lignes
Le
daniel

Bonjour,
En utilisant les lignes ci-dessous, que l'on m'a donné il y a quelque temps
sur ce forum, je souhaiterais pouvoir ne sélectionner que certaines colonnes
dans le copy.
Windows("Fichier_Repartition.xls").Activate
With Sheets("Donnees")
Set MaPlage = .Range("_FilterDatabase")
End With
Ici les lignes filtrées sont sélectionnées, mais toutes les colonnes du
filtre sont sélectionnées aussi,
MaPlage.Offset(1).Resize(MaPlage.Rows.Count -
1).SpecialCells(xlCellTypeVisible).Copy Destination
En testant "Resize(MaPlage.columns.Count -
2).SpecialCells(xlCellTypeVisible).Select",
toutes les valeurs sont changées en VRAI ?? Le Select n'est pas adéquate
dans ce genre de code.
Ou en testant d'autres façons, mais cela ne fonctionne pas. ;-(
Quel est le code pour toutes les lignes et seulement les 5 dernières
colonnes sur les 7 du tableau ??
Par avance, merci pour vos réponses.
Bonne journée.
DanielH
En utilisant les lignes ci-dessous, que l'on m'a donné il y a quelque temps
sur ce forum, je souhaiterais pouvoir ne sélectionner que certaines colonnes
dans le copy.
Windows("Fichier_Repartition.xls").Activate
With Sheets("Donnees")
Set MaPlage = .Range("_FilterDatabase")
End With
Ici les lignes filtrées sont sélectionnées, mais toutes les colonnes du
filtre sont sélectionnées aussi,
MaPlage.Offset(1).Resize(MaPlage.Rows.Count -
1).SpecialCells(xlCellTypeVisible).Copy Destination
En testant "Resize(MaPlage.columns.Count -
2).SpecialCells(xlCellTypeVisible).Select",
toutes les valeurs sont changées en VRAI ?? Le Select n'est pas adéquate
dans ce genre de code.
Ou en testant d'autres façons, mais cela ne fonctionne pas. ;-(
Quel est le code pour toutes les lignes et seulement les 5 dernières
colonnes sur les 7 du tableau ??
Par avance, merci pour vos réponses.
Bonne journée.
DanielH
Au lieu de :
Resize(MaPlage.columns.Count -
2).SpecialCells(xlCellTypeVisible).Select
essaie :
"Resize(,MaPlage.columns.Count -
2)..SpecialCells(xlCellTypeVisible).Select
(non testé).
Cordialement.
Daniel
Merci de la réponse, mais ça ne fonctionne pas.
En utilisant : Resize(,MaPlage.columns.Count -
2)..SpecialCells(xlCellTypeVisible).Select
Toutes mes cellules prennent la valeur VRAI ??
Je crains que cela est dû à l'utilisation du Select ??
Peut-être que ce serait mieux que la sélection avec 2 colonnes en moins, se
fasse dans la ligne :
MaPlage.Offset(1).Resize(MaPlage.Rows.Count -
1).SpecialCells(xlCellTypeVisible).Copy Destination
Par exemple :
MaPlage.Offset(1).Resize(MaPlage.Rows.Count -
1).Resize(MaPlage.Columns.Count - 2).SpecialCells(xlCellTypeVisible).Copy
Destination
Mais de cette façon cela ne fonctionne pas.
Ou alors le fait d'utiliser "FilterDatabase" n'autorise pas le changement du
nombre de colonnes ?
Encore merci pour la réponse.
Bonne soirée.
DanielH
"Daniel.C"
Sub test()
Dim Plage As Range
Set Plage = [_filterdatabase].Offset(1)
Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count - 2)
Plage.SpecialCells(xlCellTypeVisible).Select
End Sub
Le classeur correspondant se trouve :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijpKgFUzH.xls
Daniel
With Sheets("Donnees")
DerLign = Range("C65000").End(xlUp).Row
Set MaPlage = Range("c8:G" & DerLign)
End With
Cela oblige à figer les lettres des colonnes.
Une mieux à l'instant, tout simplement
MaPlage.Offset(1, 2).Resize(MaPlage.Rows.Count - 1,
MaPlage.Columns.Count - 2) _
.SpecialCells(xlCellTypeVisible).Copy Destination
Encore merci pour la réponse.
Bonne soirée.
DanielH
"Daniel.C"
Donc merci pour votre disponibilité, et pour le principe, je vais prendre
votre code.
Bonne soirée
DanielH
"Daniel.C"