Copier coller valeur textbox colonne filtrée

Résolu
mickysor -  
 mickysor -
Bonjour,

En VBA je souhaiterais coller la valeur d'une textbox (userform) dans une autre feuille à la dernière ligne.le problème est que cette feuille est filtrée et je ne peux pas enlever ce filtre car il fait beaucoup ralentir mon tableau. Comment faire?

1 réponse

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Même si ta feuille possède un filtre rien ne t'empêche de rajouter une dernière ligne ?

    Pour trouver son numéro, n'utilises pas end qui tient compte du filtre mais tu as bien d'autres possibilités comme .UsedRange.Rows.Count par exemple.
    0
    1. mickysor
       
      j'ai uncode vba comme ceci:
      Range("archivjour!A65536").End(xlUp).Offset(1, 0) = A.Offset(0, 0).Text
      j'ai déjà éssayé avec UsedRange.Rows.Count mais pas réussi.
      je suis débutant en vba désolé
      0
    2. mickysor
       
      voici le code complet.arriverais tu à l'adapter avec le problème de filtres?:

      Dim A As Range
      Set A = Range("listetag!B1:a" & Range("listetag!A65536").End(xlUp).Row).Find(TextBox1.Value)
      If Not A Is Nothing Then
      Range("archivjour!A65536").End(xlUp).Offset(1, 0) = A.Offset(0, 0).Text
      Range("macros!y2") = A.Offset(0, 0).Text
      End If
      0
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Ceci devrait fonctionner :

      With Sheets("archivjour")
          .Cells(.UsedRange.Rows.Count + 1, 1).Value = Me.TextBox1.Value
      End With
      0
    4. mickysor
       
      c'est super! sauf que malheureusement il me colle les données en décalé encore plus pas,comme s'il mémorisait les lignes que j'ai éfacées et qu'il n'a pas pris en compte!
      0
    5. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      C'est le problème bien connu de UsedRange qui n'est mis à jour pour les suppressions qu'à la réouverture du classeur. Comme ceci tu contourner le bug ;-)

      Dim lig As Long
      With Sheets("archivjour")
          lig = .UsedRange.Rows.Count + 1
          While .Cells(lig - 1, 1).Value = ""
              lig = lig - 1
          Wend
          .Cells(lig, 1).Value = Me.TextBox1.Value
      End With
      
      0