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

recopier des données sur un autre index

4 réponses
Avatar
jpthillard
J'ai 6 colonnes de A =E0 F sur lesquelles j'ai plac=E9 des filtres
automatiques. Le tri des donn=E9es effectu=E9 =E0 l'aide des filtres, je
voudrai pouvoir recopier le contenu des colonnes de B =E0 F. Le nombre
de lignes change en fonction du filtrage des donn=E9es.
Pour cela j'ai cr=E9=E9 un nouvel index que j'ai nomm=E9 "IMPRESSION des
ETIQUETTES" et je le fais manuellement.
Existe t-il un moyen automatis=E9?
Merci pour l'aide

4 réponses

Avatar
Daniel
Bonjour.
Adapte la macro suivante :

Sub test()
Dim Plage As Range
Set Plage = Range("_filterdatabase").Offset(0, 1).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("A100")
End Sub

Cordialement.
Daniel
a écrit dans le message de news:

J'ai 6 colonnes de A à F sur lesquelles j'ai placé des filtres
automatiques. Le tri des données effectué à l'aide des filtres, je
voudrai pouvoir recopier le contenu des colonnes de B à F. Le nombre
de lignes change en fonction du filtrage des données.
Pour cela j'ai créé un nouvel index que j'ai nommé "IMPRESSION des
ETIQUETTES" et je le fais manuellement.
Existe t-il un moyen automatisé?
Merci pour l'aide
Avatar
Daniel
Euh, en simplifiant :

Sub test3()
Range("_filterdatabase").Offset(0, 1).Resize(, _
Range("_filterdatabase").Columns.Count -
1).SpecialCells(xlCellTypeVisible).Copy _
Sheets("IMPRESSION des ETIQUETTES").Range("A1")
End Sub

fait le même travail.
Daniel
"Daniel" a écrit dans le message de news:
OSs2$
Bonjour.
Adapte la macro suivante :

Sub test()
Dim Plage As Range
Set Plage = Range("_filterdatabase").Offset(0, 1).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("A100")
End Sub

Cordialement.
Daniel
a écrit dans le message de news:

J'ai 6 colonnes de A à F sur lesquelles j'ai placé des filtres
automatiques. Le tri des données effectué à l'aide des filtres, je
voudrai pouvoir recopier le contenu des colonnes de B à F. Le nombre
de lignes change en fonction du filtrage des données.
Pour cela j'ai créé un nouvel index que j'ai nommé "IMPRESSION des
ETIQUETTES" et je le fais manuellement.
Existe t-il un moyen automatisé?
Merci pour l'aide




Avatar
jpthillard
On 14 fév, 18:33, "Daniel" wrote:
Euh, en simplifiant :

Sub test3()
Range("_filterdatabase").Offset(0, 1).Resize(, _
Range("_filterdatabase").Columns.Count -
1).SpecialCells(xlCellTypeVisible).Copy _
Sheets("IMPRESSION des ETIQUETTES").Range("A1")
End Sub

fait le même travail.
Daniel
"Daniel" a écrit dans le message de news:
OSs2$



Bonjour.
Adapte la macro suivante :

Sub test()
Dim Plage As Range
Set Plage = Range("_filterdatabase").Offset(0, 1).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("A100")
End Sub

Cordialement.
Daniel
a écrit dans le message de news:

J'ai 6 colonnes de A à F sur lesquelles j'ai placé des filtres
automatiques. Le tri des données effectué à l'aide des filtres, je
voudrai pouvoir recopier le contenu des colonnes de B à F. Le nombre
de lignes change en fonction du filtrage des données.
Pour cela j'ai créé un nouvel index que j'ai nommé "IMPRESSION des
ETIQUETTES" et je le fais manuellement.
Existe t-il un moyen automatisé?
Merci pour l'aide- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents
Merci Daniel,


J'ai adapté bien que mon niveau eb VBA ne soit pas celui que tu
penses.

Voici ce que j'ai fait sans tout comprendre. Ne peut-on pas simplifier
en faisant une boucle? Je me demande pourquoi il faut aussi mettre
des valeurs négatives dans.Offset(1,-2) le moins -2 c'est une de mes
modifications.


Sub test()
Dim Plage As Range
Set Plage = Range("_filterdatabase").Offset(1, -2).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("A2")
'RECOPIE de la colonne C
Set Plage = Range("_filterdatabase").Offset(1, -1).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("B2")
' RECOPIE de la colonne D
Set Plage = Range("_filterdatabase").Offset(1, 0).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("C2")
'RECOPIE de la colonne E
Set Plage = Range("_filterdatabase").Offset(1, 1).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("D2")
'RECOPIE de la colonne F
Set Plage = Range("_filterdatabase").Offset(1, 2).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("E2")
End Sub


Cordialement


Avatar
jpthillard
On 14 fév, 18:33, "Daniel" wrote:
Euh, en simplifiant :

Sub test3()
Range("_filterdatabase").Offset(0, 1).Resize(, _
Range("_filterdatabase").Columns.Count -
1).SpecialCells(xlCellTypeVisible).Copy _
Sheets("IMPRESSION des ETIQUETTES").Range("A1")
End Sub

fait le même travail.
Daniel
"Daniel" a écrit dans le message de news:
OSs2$



Bonjour.
Adapte la macro suivante :

Sub test()
Dim Plage As Range
Set Plage = Range("_filterdatabase").Offset(0, 1).Resize(,
Range("_filterdatabase").Columns.Count - 1)
Ligne = Range("A65536").End(xlUp).Row
Set Plage = Plage.Resize(Ligne, Plage.Columns.Count)
Plage.SpecialCells(xlCellTypeVisible).Copy Sheets("IMPRESSION des
ETIQUETTES").Range("A100")
End Sub

Cordialement.
Daniel
a écrit dans le message de news:

J'ai 6 colonnes de A à F sur lesquelles j'ai placé des filtres
automatiques. Le tri des données effectué à l'aide des filtres, je
voudrai pouvoir recopier le contenu des colonnes de B à F. Le nombre
de lignes change en fonction du filtrage des données.
Pour cela j'ai créé un nouvel index que j'ai nommé "IMPRESSION des
ETIQUETTES" et je le fais manuellement.
Existe t-il un moyen automatisé?
Merci pour l'aide- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Puis-je abuser et te demander quelles sont les instructions VBA qui
vont me permettre avant l'exécution de la macro Test deffacer le
contenu de la plage cellules B1:F500
Merci