Créer une macro dans excel avec une condition

Lilou -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
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 !!!!!
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. Jonas87 Messages postés 128 Date d'inscription   Statut Membre Dernière intervention   29
     
    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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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