Probleme de copier coller

Résolu
vico31 -  
 vico31 -
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

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. vico31
       
      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
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      ActiveSheet.Name = Rslt

      pourquoi ecrire:

      ActiveSheet.Name = Worksheets(Rslt).Range("A1")
      0
    3. vico31
       
      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
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Rslt est egal a quoi, si vide---->erreur 1004
      0
    5. vico31
       
      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