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

Copier lignes visibles uniquement

19 réponses
Avatar
rthompson
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer quelque
chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

9 réponses

1 2
Avatar
rthompson
Bonjour

Une fois de plus une petite réponse collective
Voici ou j'en suis avec le macro

Et il bloque toujours avec son message 400

MAIS

Si je clique OK
Je me retrouve sur la feuille Commande mais pas dans la cellule qui était
active avant de lancer la macro
Et si je sélectionne A1 ou toutes les callules et que je fais paste tout va
bien

Donc, à mon avis, c'est du côté Select aue cela se passe
J'ai essayé de changer le Range A1 en Cells.Select mais cela ne change pas
la donne
Si l'un d'entre vous vois une piste

Merci et à bientôt

Rex




xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([f1], [f185]).EntireRow.Show
For Each C In Range([f1], [f185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True
Cells.Select
Selection.SpecialCells(xlCellTypeVisible).EntireRow.Select
Selection.Copy
Sheets("Commande").Select
Cells.Select
ActiveSheet.Paste

End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


"Jacquouille" a écrit dans le message de
news: 4b2a2a57$0$2854$
Salut Major

A1:A10, filtré, puis copié et collé en feuille2 où je n'ai que le résultat
du filtre (3 lignes)
-----------------------------------------------
Sub Major_Rex()
'
' Major_Rex Macro
' Macro enregistrée le 17/12/2009 par Thiernene
'

'
Range("A1:A11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
---------------------------------
PS as-tu reçu mon mail privé du 11/12 ?

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"rthompson" a écrit dans le message de
news:
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes
visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer quelque
chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx







Avatar
Pounet95
Bonjour,

Je "mimiss" comme dirait madame de Fontenay ;o)))

J'essaie de suivre la chronologie du fil mais pas facile quand même.
Si j'ai bien lu ( Freud d'après Coluche ? ) le pb consiste à recopier dans
un même classeur les lignes visibles
( lesquelles ont, en colonne E de la ligne x à la ligne y, une valeur
numérique supérieure à 0 )




d'une feuille dans une autre
"rthompson" a écrit dans le message de
news:
Bonjour à toi

Ben dis donc j'ai pas de chance avec cette question
FFO me propose un truc qui me fait Error 400

Et le tien me 'Out of script"
Voilà un message nouveau pour moi

Bon
J'essaie la dernière proposition et je te tiens au courant

PS je te contacte en direct cet après-midi, mais vu les prévsions, je
crois que je vais rester au coin du feu pour quelques jours
C'est mon épouse, ma chienne et mes chats qui seront contents

A toute à l'heure

Rex


"Jacquouille" a écrit dans le message de
news: 4b2a2a57$0$2854$
Salut Major

A1:A10, filtré, puis copié et collé en feuille2 où je n'ai que le
résultat du filtre (3 lignes)
-----------------------------------------------
Sub Major_Rex()
'
' Major_Rex Macro
' Macro enregistrée le 17/12/2009 par Thiernene
'

'
Range("A1:A11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
---------------------------------
PS as-tu reçu mon mail privé du 11/12 ?

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"rthompson" a écrit dans le message de
news:
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes
visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer
quelque chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx











Avatar
michdenis
Bonjour,

Il y a ceci...
Tu copies cette procédure dans un module standard
de ton fichier source.
Dans la procédure, tu dois définir le nom du classeur
et le nom de la feuille du fichier de destination.

'---------------------------------
Sub test()
Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Feuil1")
Set rg = .Range("e1:e185"). _
SpecialCells(xlCellTypeVisible).EntireRow
End With
End With
With Workbooks("Classeur2") 'Nom à adapter
With .Worksheets("Feuil1") 'Nom à adapter
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
End With
End With
Application.CutCopyMode = False
End Sub
'---------------------------------



"rthompson" a écrit dans le message de groupe de
discussion :
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer quelque
chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Avatar
Pounet95
100000000000000000 excuses, c'est envoyé sans l'avoir voulu car plus
qu'incomplet vous aurez remarqué !!!
Voilà ce que c'est de parler avant d'avoir fini "d'avaler" !!
Je reviens, si je sais, et si problème pas résolu.

Pounet95

"Pounet95" a écrit dans le message de
news:
Bonjour,

Je "mimiss" comme dirait madame de Fontenay ;o)))

J'essaie de suivre la chronologie du fil mais pas facile quand même.
Si j'ai bien lu ( Freud d'après Coluche ? ) le pb consiste à recopier dans
un même classeur les lignes visibles
( lesquelles ont, en colonne E de la ligne x à la ligne y, une valeur
numérique supérieure à 0 )




d'une feuille dans une autre
"rthompson" a écrit dans le message de
news:
Bonjour à toi

Ben dis donc j'ai pas de chance avec cette question
FFO me propose un truc qui me fait Error 400

Et le tien me 'Out of script"
Voilà un message nouveau pour moi

Bon
J'essaie la dernière proposition et je te tiens au courant

PS je te contacte en direct cet après-midi, mais vu les prévsions, je
crois que je vais rester au coin du feu pour quelques jours
C'est mon épouse, ma chienne et mes chats qui seront contents

A toute à l'heure

Rex


"Jacquouille" a écrit dans le message de
news: 4b2a2a57$0$2854$
Salut Major

A1:A10, filtré, puis copié et collé en feuille2 où je n'ai que le
résultat du filtre (3 lignes)
-----------------------------------------------
Sub Major_Rex()
'
' Major_Rex Macro
' Macro enregistrée le 17/12/2009 par Thiernene
'

'
Range("A1:A11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
---------------------------------
PS as-tu reçu mon mail privé du 11/12 ?

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"rthompson" a écrit dans le message
de news:
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes
visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer
quelque chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx














Avatar
rthompson
Bonjour à vous tous

Dimanche matin, on se les gèle comme c'est pas permis
Enfin, au moins on reste bloqué au chaud, c'est pas le cas pour tout le
monde

Bon voici ou j'en suis grâce à une combinaison de vos commentaires et tuyau

Toutes mes questions dans ce file ont été répondues
Un grand merci à vous tous

MAIS
Je recommence un nouveau fil avec une autre question
Et tant que je vous ai sous la mains
Il y a quelques temps (un an an ou plus) il y a quelqu'un qui a parlé
d'une touche en VBA pour faire des mise en pages clair
Cela vous dit quelque choses?
C'était un truc pour bien mettre les actions à la même hauteur etc

Enfin un tout grand merci à vous et à bientôt

Rex
Voici mon code

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()
Application.ScreenUpdating = False
If MsgBox("Sauver la commande?", vbYesNo, "OUI") = vbYes Then


' This makes sure that the Commande sheet is empty
Sheets("Commande").Range("A1:P150").ClearContents

' This hides all the lines on the Entree sheet that are not needed
Range([f1], [f185]).EntireRow.Show
For Each C In Range([f1], [f185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Entree")
Set rg = .Range("e1:e185"). _
SpecialCells(xlCellTypeVisible).EntireRow
End With
With .Worksheets("Commande")
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select

' This parts saves a copy of the file with the date added
Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B4").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time,
"h-mm")
ThisWorkbook.SaveCopyAs Filename:=MyCell & " - " & strDate
& ".xls"
End With
End With

' This resets the sheet Entree back to it's ariginal state

Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx




"michdenis" a écrit dans le message de news:

Bonjour,

Il y a ceci...
Tu copies cette procédure dans un module standard
de ton fichier source.
Dans la procédure, tu dois définir le nom du classeur
et le nom de la feuille du fichier de destination.

'---------------------------------
Sub test()
Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Feuil1")
Set rg = .Range("e1:e185"). _
SpecialCells(xlCellTypeVisible).EntireRow
End With
End With
With Workbooks("Classeur2") 'Nom à adapter
With .Worksheets("Feuil1") 'Nom à adapter
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
End With
End With
Application.CutCopyMode = False
End Sub
'---------------------------------



"rthompson" a écrit dans le message de
groupe de
discussion :
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes
visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer quelque
chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



Avatar
rthompson
Bonjour à vous tous

Dimanche matin, on se les gèle comme c'est pas permis
Enfin, au moins on reste bloqué au chaud, c'est pas le cas pour tout le
monde

Bon voici ou j'en suis grâce à une combinaison de vos commentaires et tuyau

Toutes mes questions dans ce file ont été répondues
Un grand merci à vous tous

MAIS
Je recommence un nouveau fil avec une autre question
Et tant que je vous ai sous la mains
Il y a quelques temps (un an an ou plus) il y a quelqu'un qui a parlé
d'une touche en VBA pour faire des mise en pages clair
Cela vous dit quelque choses?
C'était un truc pour bien mettre les actions à la même hauteur etc

Enfin un tout grand merci à vous et à bientôt

Rex
Voici mon code

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()
Application.ScreenUpdating = False
If MsgBox("Sauver la commande?", vbYesNo, "OUI") = vbYes Then


' This makes sure that the Commande sheet is empty
Sheets("Commande").Range("A1:P150").ClearContents

' This hides all the lines on the Entree sheet that are not needed
Range([f1], [f185]).EntireRow.Show
For Each C In Range([f1], [f185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Entree")
Set rg = .Range("e1:e185"). _
SpecialCells(xlCellTypeVisible).EntireRow
End With
With .Worksheets("Commande")
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select

' This parts saves a copy of the file with the date added
Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B4").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time,
"h-mm")
ThisWorkbook.SaveCopyAs Filename:=MyCell & " - " & strDate
& ".xls"
End With
End With

' This resets the sheet Entree back to it's ariginal state

Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

"Pounet95" a écrit dans le message de news:
%23J8LSV$
100000000000000000 excuses, c'est envoyé sans l'avoir voulu car plus
qu'incomplet vous aurez remarqué !!!
Voilà ce que c'est de parler avant d'avoir fini "d'avaler" !!
Je reviens, si je sais, et si problème pas résolu.

Pounet95

"Pounet95" a écrit dans le message de
news:
Bonjour,

Je "mimiss" comme dirait madame de Fontenay ;o)))

J'essaie de suivre la chronologie du fil mais pas facile quand même.
Si j'ai bien lu ( Freud d'après Coluche ? ) le pb consiste à recopier
dans un même classeur les lignes visibles
( lesquelles ont, en colonne E de la ligne x à la ligne y, une valeur
numérique supérieure à 0 )




d'une feuille dans une autre
"rthompson" a écrit dans le message de
news:
Bonjour à toi

Ben dis donc j'ai pas de chance avec cette question
FFO me propose un truc qui me fait Error 400

Et le tien me 'Out of script"
Voilà un message nouveau pour moi

Bon
J'essaie la dernière proposition et je te tiens au courant

PS je te contacte en direct cet après-midi, mais vu les prévsions, je
crois que je vais rester au coin du feu pour quelques jours
C'est mon épouse, ma chienne et mes chats qui seront contents

A toute à l'heure

Rex


"Jacquouille" a écrit dans le message de
news: 4b2a2a57$0$2854$
Salut Major

A1:A10, filtré, puis copié et collé en feuille2 où je n'ai que le
résultat du filtre (3 lignes)
-----------------------------------------------
Sub Major_Rex()
'
' Major_Rex Macro
' Macro enregistrée le 17/12/2009 par Thiernene
'

'
Range("A1:A11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
---------------------------------
PS as-tu reçu mon mail privé du 11/12 ?

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"rthompson" a écrit dans le message
de news:
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes
visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer
quelque chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

















Avatar
rthompson
Bonjour à vous tous

Dimanche matin, on se les gèle comme c'est pas permis
Enfin, au moins on reste bloqué au chaud, c'est pas le cas pour tout le
monde

Bon voici ou j'en suis grâce à une combinaison de vos commentaires et tuyau

Toutes mes questions dans ce file ont été répondues
Un grand merci à vous tous

MAIS
Je recommence un nouveau fil avec une autre question
Et tant que je vous ai sous la mains
Il y a quelques temps (un an an ou plus) il y a quelqu'un qui a parlé
d'une touche en VBA pour faire des mise en pages clair
Cela vous dit quelque choses?
C'était un truc pour bien mettre les actions à la même hauteur etc

Enfin un tout grand merci à vous et à bientôt

Rex
Voici mon code

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()
Application.ScreenUpdating = False
If MsgBox("Sauver la commande?", vbYesNo, "OUI") = vbYes Then


' This makes sure that the Commande sheet is empty
Sheets("Commande").Range("A1:P150").ClearContents

' This hides all the lines on the Entree sheet that are not needed
Range([f1], [f185]).EntireRow.Show
For Each C In Range([f1], [f185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Entree")
Set rg = .Range("e1:e185"). _
SpecialCells(xlCellTypeVisible).EntireRow
End With
With .Worksheets("Commande")
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select

' This parts saves a copy of the file with the date added
Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B4").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time,
"h-mm")
ThisWorkbook.SaveCopyAs Filename:=MyCell & " - " & strDate
& ".xls"
End With
End With

' This resets the sheet Entree back to it's ariginal state

Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

"Modeste" a écrit dans le message de news:

Bonsour® Jacquouille avec ferveur ;o))) vous nous disiez :

A1:A10, filtré, puis copié et collé en feuille2 où je n'ai que le
résultat du filtre (3 lignes)
-----------------------------------------------
Sub Major_Rex()
'
' Major_Rex Macro
' Macro enregistrée le 17/12/2009 par Thiernene
Range("A1:A11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
End Sub



Je voudrais copier d'une feuille à une autre uniquement les lignes
visibles





;o)))

Groupes de discussion : microsoft.public.fr.excel
De : Laurent Longre
Date : 2000/06/24
Objet : Re: Récupérer des données filtrées.

Pour copier les cellules filtrées de Feuil1 vers Feuil2 (cellule de
destination = A1):
'*********************************
Sub copy_filtered()
Sheets("Feuil1").AutoFilter.Range.Copy Sheets("Feuil2").Range("A1")
End sub
'*********************************
NB :
cela part du principe qu'il n'y a qu'une zone filtrée active par onglet à un
instant donné

ou encore du même fil (même date) ;o)))
Sub Eric_Jeanne()
Sheets("Feuil1").Range("_FilterDatabase").Copy Sheets("Feuil2").Range("A1")
End Sub
Avatar
rthompson
Bonjour à vous tous

Dimanche matin, on se les gèle comme c'est pas permis
Enfin, au moins on reste bloqué au chaud, c'est pas le cas pour tout le
monde

Bon voici ou j'en suis grâce à une combinaison de vos commentaires et tuyau

Toutes mes questions dans ce file ont été répondues
Un grand merci à vous tous

MAIS
Je recommence un nouveau fil avec une autre question
Et tant que je vous ai sous la mains
Il y a quelques temps (un an an ou plus) il y a quelqu'un qui a parlé
d'une touche en VBA pour faire des mise en pages clair
Cela vous dit quelque choses?
C'était un truc pour bien mettre les actions à la même hauteur etc

Enfin un tout grand merci à vous et à bientôt

Rex
Voici mon code

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()
Application.ScreenUpdating = False
If MsgBox("Sauver la commande?", vbYesNo, "OUI") = vbYes Then


' This makes sure that the Commande sheet is empty
Sheets("Commande").Range("A1:P150").ClearContents

' This hides all the lines on the Entree sheet that are not needed
Range([f1], [f185]).EntireRow.Show
For Each C In Range([f1], [f185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Entree")
Set rg = .Range("e1:e185"). _
SpecialCells(xlCellTypeVisible).EntireRow
End With
With .Worksheets("Commande")
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select

' This parts saves a copy of the file with the date added
Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B4").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time,
"h-mm")
ThisWorkbook.SaveCopyAs Filename:=MyCell & " - " & strDate
& ".xls"
End With
End With

' This resets the sheet Entree back to it's ariginal state

Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

"Jacquouille" a écrit dans le message de
news: 4b2a2a57$0$2854$
Salut Major

A1:A10, filtré, puis copié et collé en feuille2 où je n'ai que le résultat
du filtre (3 lignes)
-----------------------------------------------
Sub Major_Rex()
'
' Major_Rex Macro
' Macro enregistrée le 17/12/2009 par Thiernene
'

'
Range("A1:A11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
---------------------------------
PS as-tu reçu mon mail privé du 11/12 ?

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"rthompson" a écrit dans le message de
news:
Bonsoir à toutes et tous

Je voudrais copier d'une feuille à une autre uniquement les lignes
visibles

Pour cela j'utilise le bout de code ci-dessus
Celui-ci fonctionnat dans une autre fichier, mais j'ai du changer quelque
chose
Et il me met l'horrible Error 400

Et quand je fais la même opération manuellement je n'ai aucun problème

Si je vois bien c'est du côté collage spécial que cela cloche

Si quelqu'un a une idée

D'avance merci

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()

Application.ScreenUpdating = False
Range([e1], [e185]).EntireRow.Show
For Each C In Range([e1], [e185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Application.ScreenUpdating = True
Application.EnableEvents = True

Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Commande").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("C8").Select
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx







Avatar
rthompson
Bonjour à vous tous

Dimanche matin, on se les gèle comme c'est pas permis
Enfin, au moins on reste bloqué au chaud, c'est pas le cas pour tout le
monde

Bon voici ou j'en suis grâce à une combinaison de vos commentaires et tuyau

Toutes mes questions dans ce file ont été répondues
Un grand merci à vous tous

MAIS
Je recommence un nouveau fil avec une autre question
Et tant que je vous ai sous la mains
Il y a quelques temps (un an an ou plus) il y a quelqu'un qui a parlé
d'une touche en VBA pour faire des mise en pages clair
Cela vous dit quelque choses?
C'était un truc pour bien mettre les actions à la même hauteur etc

Enfin un tout grand merci à vous et à bientôt

Rex
Voici mon code

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub Showordered()
Application.ScreenUpdating = False
If MsgBox("Sauver la commande?", vbYesNo, "OUI") = vbYes Then


' This makes sure that the Commande sheet is empty
Sheets("Commande").Range("A1:P150").ClearContents

' This hides all the lines on the Entree sheet that are not needed
Range([f1], [f185]).EntireRow.Show
For Each C In Range([f1], [f185])
C.EntireRow.Hidden = Not ((C.Value > 0))
Next C
Dim rg As Range
On Error Resume Next
With ThisWorkbook
With .Worksheets("Entree")
Set rg = .Range("e1:e185"). _
SpecialCells(xlCellTypeVisible).EntireRow
End With
With .Worksheets("Commande")
rg.Copy
.Range("A1").PasteSpecial xlPasteAll
.Range("A1").Select

' This parts saves a copy of the file with the date added
Dim strDate As String
Dim MyCell
MyCell = Sheets("Commande").Range("B4").Text
Count = Len(ActiveWorkbook.Name)
Name = (B4)
strDate = Format(Date, "yyyy-mm-dd") & " " & Format(Time,
"h-mm")
ThisWorkbook.SaveCopyAs Filename:=MyCell & " - " & strDate
& ".xls"
End With
End With

' This resets the sheet Entree back to it's ariginal state

Application.CutCopyMode = False
Range("A1").Select
Sheets("Entree").Select
Cells.Select
Selection.EntireRow.Hidden = False
Range("F13:F137").Select
Selection.ClearContents
Range("C1").Select
Application.ScreenUpdating = True
End If
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

"FFO" a écrit dans le message de news:

Salut à toi

Je mettrais au lieu de :

Selection.SpecialCells(xlCellTypeVisible).Select

ceci :

Range([e1], [e185]).SpecialCells(xlCellTypeVisible).Entirerow.Select

Peut être du mieux pour toi

Dis moi !!!!!



1 2