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