Créer une macro dans excel avec une condition

Fermé
Lilou - 12 mars 2009 à 13:35
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 12 mars 2009 à 14:49
Bonjour,

Je ne suis pas très calée en macro et je suis désespérée ;)

Voici ma situation :

j'ai un tableau dans feuille 1 avec Date demande / nature travaux / date réalisation

je voudrais construire une macro qui coupe toutes les lignes dont la colonne "date de réalisation" est remplie, insère une ligne dans un tableau dans la feuille 2, colle le tout et supprime les lignes qui ont été coupées dans feuille 1

Quelqu'un peut-il me dire si c'est possible? Si oui, que faut-il alors écrire dans VBA?

Merci d'avance !!!!!
A voir également:

2 réponses

Jonas87 Messages postés 125 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 19 avril 2010 29
12 mars 2009 à 13:59
Tu veux un tableau en feuille 2 avec toutes les dates réalisées et en feuille 1 que ce qui n'est pas réalisé ? J'ai bien compris ?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
12 mars 2009 à 14:49
Salut,

Regardes ce code, qui pourrait s'écrire différemment, mais pour te permettre de suivre son déroulement j’ai opté pour un code primaire. Après les apostrophe à chaque ligne de code, je t’ai mis la correspondance

Sub test()
Range("A200").End(xlUp).Offset(1, 0).Select 'sélectionne la deuxième cellule pour conserver les titres colonnes
Range(ActiveCell, Range("F2")).Copy 'sélectionne la plage de la cellule active à F2 Edition/Copier
Sheets("Feuil2").Select 'ouvres la feuille2
Range("A200").End(xlUp).Offset(1, 0).Select 'recherche la première cellule vide et colle
ActiveCell.Offset(1, 0).Select 'sélectionne l'emplacement de la ligne à insérer
Selection.EntireRow.Insert 'insére la ligne
ActiveSheet.Paste 'colle, mais cette ligne n'est pas necessaire
Sheets("Feuil1").Select 'revient feuille1
Range("A200").End(xlUp).Offset(1, 0).Select 'resélectionne la plage et supprime les lignes
Range(ActiveCell, Range("A2")).EntireRow.Delete
End Sub

Mais pourquoi ne pas écrire plus simplement ce code

Sub test()
Range("A200").End(xlUp).Offset(1, 0).Select
Range(ActiveCell, Range("F2")).Cut
Sheets("Feuil2").Select
Range("A200").End(xlUp).Offset(2, 0).Select
ActiveSheet.Paste
Sheets("Feuil1").Select
End Sub

Avec ce lien récupères un exemple

https://www.cjoint.com/?doo1STR2Wc

A+
0