Probleme de copier coller

Résolu/Fermé
vico31 - Modifié par vico31 le 22/07/2013 à 14:23
 vico31 - 22 juil. 2013 à 15:51
Bonjour à tous,

Mon problème est le suivant je souhaite copier, les résultats d'un filtre sur une nouvelle feuille "Rslt", le problème c'est que cela ne marche pas surement du à un oubli
Merci de m'aider

Sub Créer_()

Application.ScreenUpdating = False
For lgn = 2 To 65536
Sheets("Tchou").Select
Rslt = Cells(lgn, 1).Value
Sheets("Tchou").Select
Range("L1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=12, Criteria1:="MAL"
Range("A1:Af65536").Select
Range("A1").Activate
Selection.Copy

Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Worksheets("Rslt").Range("A1")
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' le problème vient de cette partie manifestement
Next lgn

Application.ScreenUpdating = True

End Sub
A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
22 juil. 2013 à 14:50
Bonjour,

Rslt = Cells(lgn, 1).Value est-ce le nom de l'onglet a ajouter ???


ActiveSheet.Name = Worksheets("Rslt").Range("A1") Enlevez les doubles cotes de Rslt

les résultats d'un filtre sur une nouvelle feuille "Rslt" la, quand cela marchera vous etes parti pour en ajouterez 65534, mais votre excel n'en accepte que 255.

Si vous voulez seulement les cellules filtrees:

Range("A1:AF65536").SpecialCells(xlVisible).Copy

mais il faudrait aussi limite aux lignes effectives de votre tableau

Range("A1:AF" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Copy

A+
0
Merci pour votre rapidité.

Alors premièrement, oui Rslt est l'onglet à ajouter.
Secondo, j'ai du mal comprendre ce que vous vouliez dire par doubles cotes car ca plante toujours à cet endroit


Modif:
Sub Créer_()
Application.ScreenUpdating = False
For lgn = 2 To 65536
Sheets("Tchou").Select
Rslt = Cells(lgn, 1).Value
Sheets("Tchou").Select
Range("L1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=12, Criteria1:="MAL"
Range("A1:AF" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Copy

Range("A1").Activate
Selection.Copy
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Worksheets(Rslt).Range("A1")
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' le problème vient de cette partie manifestement
Next lgn
Application.ScreenUpdating = True
End Sub
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
22 juil. 2013 à 15:09
Re,

ActiveSheet.Name = Rslt

pourquoi ecrire:

ActiveSheet.Name = Worksheets(Rslt).Range("A1")
0
j'ai déjà essayé avec ActiveSheet.Name = Rslt

Il m'indique toujours le problème erreur 1004; erreur définie par l'application ou par l'objet.

Donc le doc ajoute bien une feuil1 mais il ne veut pas la renommer ni coller les données sur cette même feuille :(
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
22 juil. 2013 à 15:22
Re,

Rslt est egal a quoi, si vide---->erreur 1004
0
Je veux juste grâce à mon doc initial "Tchou" faire un filtre sur la rubrique "MAL" et que le résultat de ce filtrage apparaisse dans un nouvel onglet qu'on nomerrait "Rslt", donc "Rslt" ne doit pas être vide.

Désolé de t'ennuyer mais mes compétences en VBA sont limités et je ne comprend pas pourquoi il n'accepte pas ce nom de feuille.....
0