Mon probl=C3=A8me:
J'ai un classeur avec beaucoup de lignes et de colonnes de donn=C3=A9es.
Je filtre certaines lignes.
A la souris, je s=C3=A9lectionne, sur une colonne (seulement) quelconque et=
de mani=C3=A8re contigu=C3=AB, des cellules sur plusieurs lignes (s=C3=A9l=
ection verticale donc).
Je voudrais pouvoir r=C3=A9cup=C3=A9rer le contenu des cellules en surbrill=
ance s=C3=A9lectionn=C3=A9es, pour les copier ailleurs.
C'est un peu compliqu=C3=A9 pour moi...
Merci pour votre aide
Alf
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JièL
Hello, vielle version d'Excel ? Les récentes font la sélection des cellules visibles seulement. Une fois les cellules (de la colonne) sélectionnées, F5, Cellules, Cellules visibles seulement, OK y'a plus qu'a copier -- JièL Sel et xion Le 02/12/2017 à 10:21, Alf a écrit :
Bonjour à tous, Mon problème: J'ai un classeur avec beaucoup de lignes et de colonnes de données. Je filtre certaines lignes. A la souris, je sélectionne, sur une colonne (seulement) quelconque et de manière contiguë, des cellules sur plusieurs lignes (sélection verticale donc). Je voudrais pouvoir récupérer le contenu des cellules en surbrillance sélectionnées, pour les copier ailleurs. C'est un peu compliqué pour moi... Merci pour votre aide Alf
Hello,
vielle version d'Excel ?
Les récentes font la sélection des cellules visibles seulement.
Une fois les cellules (de la colonne) sélectionnées, F5, Cellules,
Cellules visibles seulement, OK
y'a plus qu'a copier
--
JièL Sel et xion
Le 02/12/2017 à 10:21, Alf a écrit :
Bonjour à tous,
Mon problème:
J'ai un classeur avec beaucoup de lignes et de colonnes de données.
Je filtre certaines lignes.
A la souris, je sélectionne, sur une colonne (seulement) quelconque et de manière contiguë, des cellules sur plusieurs lignes (sélection verticale donc).
Je voudrais pouvoir récupérer le contenu des cellules en surbrillance sélectionnées, pour les copier ailleurs.
C'est un peu compliqué pour moi...
Merci pour votre aide
Alf
Hello, vielle version d'Excel ? Les récentes font la sélection des cellules visibles seulement. Une fois les cellules (de la colonne) sélectionnées, F5, Cellules, Cellules visibles seulement, OK y'a plus qu'a copier -- JièL Sel et xion Le 02/12/2017 à 10:21, Alf a écrit :
Bonjour à tous, Mon problème: J'ai un classeur avec beaucoup de lignes et de colonnes de données. Je filtre certaines lignes. A la souris, je sélectionne, sur une colonne (seulement) quelconque et de manière contiguë, des cellules sur plusieurs lignes (sélection verticale donc). Je voudrais pouvoir récupérer le contenu des cellules en surbrillance sélectionnées, pour les copier ailleurs. C'est un peu compliqué pour moi... Merci pour votre aide Alf
Michd
Bonjour, Un exemple de code : Cette procédure copie toutes les cellules visibles seulement de la plage de cellules A1:Ax de la feuil1 vers la plage de cellules D1:Dx de la feuil2. À toi d'adapter le nom des feuilles et de la plage à copier et la destination de la copie La copie comprend le format de la plage de cellules + leurs valeurs. '------------------------------------------------ Sub test() With Worksheets("Feuil1") With .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Rows) .SpecialCells(xlCellTypeVisible).Copy Worksheets("Feuil2").Range("D1") End With End With End Sub '------------------------------------------------ Pour ne copier que le contenu des cellules vers la plage de destination : '------------------------------------------------ Sub test() Dim T As Variant With Worksheets("Feuil1") With .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Rows) t = .SpecialCells(xlCellTypeVisible) End With End With With Worksheets("Feuil2") .Range("D1").Resize(UBound(t, 1), UBound(t, 2)) = t End With End Sub '------------------------------------------------ MichD
Bonjour,
Un exemple de code : Cette procédure copie toutes les cellules visibles
seulement de la plage de cellules A1:Ax de la feuil1 vers la plage de
cellules D1:Dx de la feuil2. À toi d'adapter le nom des feuilles et de la
plage à copier et la destination de la copie
La copie comprend le format de la plage de cellules + leurs valeurs.
'------------------------------------------------
Sub test()
With Worksheets("Feuil1")
With .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Rows)
.SpecialCells(xlCellTypeVisible).Copy
Worksheets("Feuil2").Range("D1")
End With
End With
End Sub
'------------------------------------------------
Pour ne copier que le contenu des cellules vers la plage de destination :
'------------------------------------------------
Sub test()
Dim T As Variant
With Worksheets("Feuil1")
With .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Rows)
t = .SpecialCells(xlCellTypeVisible)
End With
End With
With Worksheets("Feuil2")
.Range("D1").Resize(UBound(t, 1), UBound(t, 2)) = t
End With
End Sub
'------------------------------------------------
Bonjour, Un exemple de code : Cette procédure copie toutes les cellules visibles seulement de la plage de cellules A1:Ax de la feuil1 vers la plage de cellules D1:Dx de la feuil2. À toi d'adapter le nom des feuilles et de la plage à copier et la destination de la copie La copie comprend le format de la plage de cellules + leurs valeurs. '------------------------------------------------ Sub test() With Worksheets("Feuil1") With .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Rows) .SpecialCells(xlCellTypeVisible).Copy Worksheets("Feuil2").Range("D1") End With End With End Sub '------------------------------------------------ Pour ne copier que le contenu des cellules vers la plage de destination : '------------------------------------------------ Sub test() Dim T As Variant With Worksheets("Feuil1") With .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Rows) t = .SpecialCells(xlCellTypeVisible) End With End With With Worksheets("Feuil2") .Range("D1").Resize(UBound(t, 1), UBound(t, 2)) = t End With End Sub '------------------------------------------------ MichD
Michd
Mais ce que je voudrais c'est uniquement le contenu des cellules visibles que j'ai sélectionnées (mise en surbrillance d'une plage parmi les cellules visibles)... Plus ardu non...! ***** En supposant que tu as fait la sélection manuelle et que tu veuilles copier seulement les cellules visibles de cette sélection, tu peux utiliser ceci : Dans le bout de code suivant, l'objet "Selection" est un terme générique qui peut désigner n'importe quel objet dans la feuille active (celle affichée à l'écran dans le classeur). Ce peut être une plage de cellules, un graphe, un checkbox, un bout de commande, etc. il s'agit de faire un petit test au début de la procédure afin d'effectuer la copie seulement si le type d'objet que représente "Selection" est de type "range". '----------------------------------------- Sub test() With Worksheets("Feuil1") If TypeName(Selection) = "Range" Then Selection.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("Feuil1").Range("H1") End If End With End Sub '----------------------------------------- MichD
Mais ce que je voudrais c'est uniquement le contenu des cellules visibles
que j'ai sélectionnées (mise en surbrillance d'une plage parmi les cellules
visibles)...
Plus ardu non...!
***** En supposant que tu as fait la sélection manuelle et que tu veuilles
copier seulement les cellules visibles de cette sélection, tu peux utiliser
ceci :
Dans le bout de code suivant, l'objet "Selection" est un terme générique qui
peut désigner n'importe quel objet dans la feuille active (celle affichée à
l'écran dans le classeur). Ce peut être une plage de cellules, un graphe, un
checkbox, un bout de commande, etc. il s'agit de faire un petit test au
début de la procédure afin d'effectuer la copie seulement si le type d'objet
que représente "Selection" est de type "range".
'-----------------------------------------
Sub test()
With Worksheets("Feuil1")
If TypeName(Selection) = "Range" Then
Selection.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Feuil1").Range("H1")
End If
End With
End Sub
'-----------------------------------------
Mais ce que je voudrais c'est uniquement le contenu des cellules visibles que j'ai sélectionnées (mise en surbrillance d'une plage parmi les cellules visibles)... Plus ardu non...! ***** En supposant que tu as fait la sélection manuelle et que tu veuilles copier seulement les cellules visibles de cette sélection, tu peux utiliser ceci : Dans le bout de code suivant, l'objet "Selection" est un terme générique qui peut désigner n'importe quel objet dans la feuille active (celle affichée à l'écran dans le classeur). Ce peut être une plage de cellules, un graphe, un checkbox, un bout de commande, etc. il s'agit de faire un petit test au début de la procédure afin d'effectuer la copie seulement si le type d'objet que représente "Selection" est de type "range". '----------------------------------------- Sub test() With Worksheets("Feuil1") If TypeName(Selection) = "Range" Then Selection.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("Feuil1").Range("H1") End If End With End Sub '----------------------------------------- MichD
Michd
Je crois avoir trouvé '------------------- dim c as range dim Cont as string For Each c In Selection.SpecialCells(xlCellTypeVisible) Cont=c.value Next c '-------------------- Cela te semble correct MichD ? ***** Cette boucle est possible. Cependant, la variable "Cont" va prendre la valeur de chacune des cellules à tour de rôle et tu n'auras à la fin, qu'une seule valeur dans la "Cont" qui sera égale à la dernière cellule de la plage. Est-ce bien utile? MichD
Je crois avoir trouvé
'-------------------
dim c as range
dim Cont as string
For Each c In Selection.SpecialCells(xlCellTypeVisible)
Cont=c.value
Next c
'--------------------
Cela te semble correct MichD ?
***** Cette boucle est possible. Cependant, la variable "Cont" va prendre la
valeur de chacune des cellules à tour de rôle et tu n'auras à la fin, qu'une
seule valeur dans la "Cont" qui sera égale à la dernière cellule de la
plage. Est-ce bien utile?
Je crois avoir trouvé '------------------- dim c as range dim Cont as string For Each c In Selection.SpecialCells(xlCellTypeVisible) Cont=c.value Next c '-------------------- Cela te semble correct MichD ? ***** Cette boucle est possible. Cependant, la variable "Cont" va prendre la valeur de chacune des cellules à tour de rôle et tu n'auras à la fin, qu'une seule valeur dans la "Cont" qui sera égale à la dernière cellule de la plage. Est-ce bien utile? MichD