Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro avec resize pour colonnes et lignes

5 réponses
Avatar
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

5 réponses

Avatar
Daniel.C
Bonsoir.
Au lieu de :
Resize(MaPlage.columns.Count -
2).SpecialCells(xlCellTypeVisible).Select
essaie :
"Resize(,MaPlage.columns.Count -
2)..SpecialCells(xlCellTypeVisible).Select
(non testé).
Cordialement.
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


Avatar
daniel
Bonsoir,
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" a écrit dans le message de news:

Bonsoir.
Au lieu de :
Resize(MaPlage.columns.Count - 2).SpecialCells(xlCellTypeVisible).Select
essaie :
"Resize(,MaPlage.columns.Count -
2)..SpecialCells(xlCellTypeVisible).Select
(non testé).
Cordialement.
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




Avatar
Daniel.C
Ce code est testé :

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

Bonsoir,
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" a écrit dans le message de news:

Bonsoir.
Au lieu de :
Resize(MaPlage.columns.Count - 2).SpecialCells(xlCellTypeVisible).Select
essaie :
"Resize(,MaPlage.columns.Count - 2)..SpecialCells(xlCellTypeVisible).Select
(non testé).
Cordialement.
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






Avatar
daniel
Trouvé une solution, mais moins sympa que l'initiale :

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" a écrit dans le message de news:

Bonsoir.
Au lieu de :
Resize(MaPlage.columns.Count - 2).SpecialCells(xlCellTypeVisible).Select
essaie :
"Resize(,MaPlage.columns.Count -
2)..SpecialCells(xlCellTypeVisible).Select
(non testé).
Cordialement.
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






Avatar
daniel
Je n'ai pas vu votre message avant d'envoyer le précédent.
Donc merci pour votre disponibilité, et pour le principe, je vais prendre
votre code.
Bonne soirée
DanielH

"Daniel.C" a écrit dans le message de news:

Ce code est testé :

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

Bonsoir,
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" a écrit dans le message de news:

Bonsoir.
Au lieu de :
Resize(MaPlage.columns.Count - 2).SpecialCells(xlCellTypeVisible).Select
essaie :
"Resize(,MaPlage.columns.Count -
2)..SpecialCells(xlCellTypeVisible).Select
(non testé).
Cordialement.
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