Créer une macro dans excel avec une condition
Lilou
-
Mike-31 Messages postés 19572 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 19572 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 !!!!!
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:
- Créer une macro dans excel avec une condition
- Créer une liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment créer un groupe whatsapp - Guide
- Déplacer une colonne excel - Guide
- Créer une adresse hotmail - Guide
2 réponses
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 ?
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+
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+