Fonction couper-coller VBA

Fonction couper-coller VBA - VB/VBA/VBS - Programmation

Marsh Posté le 03-02-2016 à 18:46:02    

Bonjour,  
J'ai besoin d'un peu d'aide car j'ai un faible niveau dans ce domaine.  
 
Afin de trier certaines valeurs d'un tableau Excel, je voudrais en fonction d'une valeur: couper une ligne entière et venir la coller à la suite sur une 2ème feuille.  
Donc j'utilise une boucle FOR pour venir tester, par ligne, la valeur d'une cellule en particulier. Puis une condition IF imbriqué ce qui me donne :  
 
Par exemple ici je veux prendre toute les lignes pour lesquels la valeur de B(i)=100 et venir la couper-coller dans la feuille 2
 
Sub nettoyer()
    For i = 1 To 2000
        If Cells(i, 2).value = 100 Then
                    Rows(i).Cut
                    Sheets("Feuil2" ).Paste
        End If
End Sub
 
Voici ce que j'arrive à sortir... et ca ne fonctionne pas.
 
Ensuite il faudrait que les lignes se copient à la suite dans la feuille deux, il faudra donc que je fasse un test pour savoir quel est la première ligne vide du tableau... mais la je colle encore plus.
 
Quelqu'un aurait la gentillesse de m'aider/m'aiguiller ou au moins de me corriger le code pour faire juste le couper-coller ? ca me ferait bien avancer :)
 
 
 
 
 

Reply

Marsh Posté le 03-02-2016 à 18:46:02   

Reply

Marsh Posté le 03-02-2016 à 19:57:17    

Bonjour,
 
Pour remplacer Marc L, merci d'utiliser les balises servant à insérer du code afin d'améliorer la lisibilité du message. :o  
 

Code :
  1. For ...
  2.      ...
  3. Next ???


 
couper/coller : https://msdn.microsoft.com/fr-fr/li [...] 38374.aspx
 
Et pour finir, quand une ligne est supprimée, les autres lignes descendent d'un index. Donc quand une ligne est coupée, si on parcourt les lignes avec une boucle for, la ligne suivante n'est pas parcouru, elle est sautée si je ne me trompe pas.
Pour vérifier si une ligne est libre il y a plusieurs méthodes, mais ne serait-ce pas plus simple d'insérer une ligne au début de la feuille 2 avant de couper/coller dedans? Cela éviterait de chercher une ligne libre.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 04-02-2016 à 10:12:24    

 
           Bonjour, bonjour !
 
           La boucle est inutile, à part pour ralentir le processus ‼
 
           Juste filtrer la plage puis via la simple instruction Cut en précisant sa Destination comme documentée dans l'aide VBA …
           
           Pour trouver la dernière ligne saisie, voir ce sujet et aussi celui-là
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed