Copier/Coller avec un Filtre en place

Bonjour à tous,

Je m'explique:

J'ai un fichier Excel avec 8 colonnes.

Les 2 premières et les 3 dernières sont pleines.

Je fais un filtre sur une valeur présente dans une colonne.

De là je voudrais pouvoir copier les 3 dernières colonnes dans les 3 colonnes vide du milieu.

Hors quand je fais un simple Copier/Coller vue que j'ai un filtre en place, Excel me colle ça n’ importe où.

Avez-vous une solution pour moi ?

Merci

Cordialement

Bylbo

bonjour

pourquoi copier/coller APRèS filtrage ?

ne peut-on pas créer une formule qui affiche dans les colonnes CDE le contenu des colonnes FGH sous condition (la condition étant similaire à celle de ton filtre) ?

joins un fichier

Je fais un filtre sur une colonne pour afficher uniquement les valeurs dont j'ai besoin dans les colonnes FGH.

Ensuite je voudrais faire une copie des 3 valeurs qui se trouvent dans ces colonnes sur 20 lignes et les reporter dans les colonnes CDE.

Un simple Copier / Coller c'est tout.

Si j'enlève le filtre j'aurais toutes les lignes dont je n'ai pas besoin et je pourrais plus faire mon coller.

A l'heure actuelle je suis obligé de copier ligne à ligne.

Je voulais juste savoir s'il y a la possibilité de la faire en une fois.

oui

avec des formules en colonne I contenant en colonne I =SI(tacondition;F;"")

tu copies/colles spécial valeurs en col I

idem pour col J = SI(tacondition;G;"")

col K = SI(tacondition;H;"")

j'ai trouvé ça:

Sub past_tres_special2()

'

'Copier coler avec des filtre en respectant les ligne non sélectionné

'

'YunZuki

'2008-05-14

'

'***************************************

'Variable

' entrez la valeur du mesage box saisit dans la variable ColStrt

ColStrt = InputBox("Entrez la lettre de la Colonne à copier :", "Colonne copiée")

' Si l'utilisateur n'a saisie aucune donnée et qu'il clique sur OK,

' ou si l'utlisateur clique sur Annuler, on quitte la procédure.

If ColStrt = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

' Sinon la donnée saisie est affichée

Else

ColEnd = InputBox("Entrez la lettre de la Colonne à coller :", "Colonne collée")

If ColEnd = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

LineStart = InputBox("Entrez la ligne de départ :", "Ligne départ")

If LineStart = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

LineEnd = InputBox("Entrez la ligne de départ :", "Ligne de fin")

If LineEnd = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

'***************************************

'paste

x = LineStart

For x = LineStart To LineEnd

If Range("A" & x).Height <> 0 Then

Range(ColEnd & x).Value = Range(ColStrt & x).Value

End If

Next

'***************************************

'Fin des if des variable

End If

End If

End If

End If

End Sub

Ca marche très bien pour copier UNE SEULE COLONNE.

Est ce que vous savez ce que je peux changer pour que ca fonctionne avec les 3 COLONNES ???

Quelqu'un pour m'aider svp ????

Voila ou j'en suis:

Sub past_tres_special2()

'

'Copier coler avec des filtre en respectant les ligne non sélectionné

'

'YunZuki

'2008-05-14

'

'***************************************

'Variable

' entrez la valeur du mesage box saisit dans la variable ColStrt

ColStrtA = InputBox("Entrez la lettre de la Colonne à copier :", "Colonne copiée")

' Si l'utilisateur n'a saisie aucune donnée et qu'il clique sur OK,

' ou si l'utlisateur clique sur Annuler, on quitte la procédure.

If ColStrtA = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

' Sinon la donnée saisie est affichée

Else

ColEndA = InputBox("Entrez la lettre de la Colonne à coller :", "Colonne collée")

If ColEndA = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

'Variable

' entrez la valeur du mesage box saisit dans la variable ColStrt

ColStrtB = InputBox("Entrez la lettre de la Colonne à copier :", "Colonne copiée")

' Si l'utilisateur n'a saisie aucune donnée et qu'il clique sur OK,

' ou si l'utlisateur clique sur Annuler, on quitte la procédure.

If ColStrtB = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

' Sinon la donnée saisie est affichée

Else

ColEndB = InputBox("Entrez la lettre de la Colonne à coller :", "Colonne collée")

If ColEndB = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

'Variable

' entrez la valeur du mesage box saisit dans la variable ColStrt

ColStrtC = InputBox("Entrez la lettre de la Colonne à copier :", "Colonne copiée")

' Si l'utilisateur n'a saisie aucune donnée et qu'il clique sur OK,

' ou si l'utlisateur clique sur Annuler, on quitte la procédure.

If ColStrtC = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

' Sinon la donnée saisie est affichée

Else

ColEndC = InputBox("Entrez la lettre de la Colonne à coller :", "Colonne collée")

If ColEndC = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

LineStart = InputBox("Entrez la ligne de départ :", "Ligne départ")

If LineStart = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

LineEnd = InputBox("Entrez la ligne de départ :", "Ligne de fin")

If LineEnd = "" Then

MsgBox "Aucune donnée n'a été saisie"

Exit Sub

Else

'***************************************

'paste

x = LineStart

For x = LineStart To LineEnd

If Range("A" & x).Height <> 0 Then

Range(ColEndA & x).Value = Range(ColStrtA & x).Value

End If

Next

x = LineStart

For x = LineStart To LineEnd

If Range("A" & x).Height <> 0 Then

Range(ColEndB & x).Value = Range(ColStrtB & x).Value

End If

Next

x = LineStart

For x = LineStart To LineEnd

If Range("A" & x).Height <> 0 Then

Range(ColEndC & x).Value = Range(ColStrtC & x).Value

End If

Next

'***************************************

'Fin des if des variable

End If

End If

End If

End If

End If

End If

End If

End If

End Sub

De cette façon ça marche pour mes trois Colones.

Le hic c'est que j'ai 8 boites de dialogue qui s'ouvrent pour entrer mes variables.

J'en ai 6 pour les colones à copier/coller et 2 autres pour la ligne de départ et la ligne d'arrivée.

Je souhaiterais pouvoir mettre dans la 1ère boite de dialogue les 3 variables des colonnes à copier.

Dans la 2ème boites de dialoque les 3 variables des colones ou il faut coller.

Puis toujours les 2 derenières variables pour les lignes de départ et de fin.

Merci pour votre aide

re

moi pas VBA

je passe la parole à des VBAistes

Bonsoir,

Tu aurais mis un fichier au départ pour illustrer ce que tu veux, tu aurais eu rapidement une procédure sur mesure adaptée à ton cas.

Qui d'ailleurs comme la tienne n'aurait fait ni copier, ni coller.

Cordialement

Ferrand

Rechercher des sujets similaires à "copier coller filtre place"