XL 2019 transfère une ligne entre deux onglet dans un même tableau

riv

XLDnaute Nouveau
bonjour , je cherche quelqu'un qui pourrais m'écrire une macro en vba


une macro qui soit affecter a un bouton (enregistrer les finis) : sont rôle doit sélectionner les lignes avec le mots "fini" en case D feuille source puis les transfère dans la feuille fini a la suite des autres en inscrivant la date du transfère la la fin de la ligne.

une autre macro un bouton de retour (retour en com) : sont rôle doit sélectionner les ligne vide sur la feuille fini dans la colonne D et lorsque la ligne est sélectionner la réintégrer dans l'onglet source.

en gros un aller retour entre 2 feuille suivant l'état de la case "Fini"

merci d'avance a ceux qui auront la possibilité de me donner un coup de main
 
Solution
J'ai tester et ca marche comme voulu


peut tu m'expliquer la phrase stp:
Set Fini = Sheets("fini").ListObjects("TbFini")

merci beaucoup
Fini est une variable à laquelle on affecte le tableau structuré nommé TbFini de la feuille Fini.
Une fois cette variable définie, on la réutilise dans le code pour ne pas réécrire à chaque fois sheets("fini").ListObjects("TFini").
J'aurai dû prendre un autre nom de variable car ça prête à confusion.
Tu peux la modifier en modifiant aussi dans la déclaration Dim Fini as Listobject.
Tu peux faire comme ci-dessous:
VB:
Dim c As Range, Toto As ListObject, Lig As ListRow, dl As Integer, i As Integer
   Set Toto = Sheets("fini").ListObjects("TbFini")

Bonne Continuation.

riv

XLDnaute Nouveau
je suis pas loin du bute je pense

1: j'ai besoin de ramplacr .Range ("A8") par la sélection juste au dessus
2: j'ai besoin de supprimer que dans la feuille com

1675177118138.png
 

cp4

XLDnaute Barbatruc
Bonsoir,

@riv : Je pense que tu n'es pas vraiment sûr de ta démarche. Ton fichier joint au post#3 en retour. Tu trouveras des explications succinctes pour utiliser le fichier.

Bonne soirée.
 

Pièces jointes

  • Riv_Cp4.xlsm
    27.9 KB · Affichages: 3

riv

XLDnaute Nouveau
Bonsoir,

@riv : Je pense que tu n'es pas vraiment sûr de ta démarche. Ton fichier joint au post#3 en retour. Tu trouveras des explications succinctes pour utiliser le fichier.

Bonne soirée.
bonjour cp4

je vient de regarder ta programmation merci a toi d'avoir pris le temps, c'est ce que je voulais par contre dans la feuille fini les ligne n'apparaisse pas a la suite du tableau et il fau que la ligne sélectionner sois supprimer de la ca feuille de base base après le transfère entre feuille.

merci encore
 

cp4

XLDnaute Barbatruc
bonjour cp4

je vient de regarder ta programmation merci a toi d'avoir pris le temps, c'est ce que je voulais par contre dans la feuille fini les ligne n'apparaisse pas a la suite du tableau et il fau que la ligne sélectionner sois supprimer de la ca feuille de base base après le transfère entre feuille.

merci encore
Bonjour,
c'est ce que fait exactement le code. Tu ne t'en rends pas compte car tu as des lignes en doublons voire triplons ou plus. Dans le fichier joint, j'ai modifié pour l'exemple le n° d'affaire (plus de doublon).

1 - De la feuille source, si le mot fini est mis en colonne "état", le code transfert la ligne vers la feuille fini en ajoutant la date du jour et la supprime de la feuille source.

2 - De la feuille fini, il faut effacer mot fini est mis en colonne "état", le code transfert la ligne vers la feuille source en ajoutant la date du jour et la supprime de la feuille fini.

Bonne journée.
 

Pièces jointes

  • Riv_Cp4_2.xlsm
    28 KB · Affichages: 3

cp4

XLDnaute Barbatruc
J'ai tester et ca marche comme voulu


peut tu m'expliquer la phrase stp:
Set Fini = Sheets("fini").ListObjects("TbFini")

merci beaucoup
Fini est une variable à laquelle on affecte le tableau structuré nommé TbFini de la feuille Fini.
Une fois cette variable définie, on la réutilise dans le code pour ne pas réécrire à chaque fois sheets("fini").ListObjects("TFini").
J'aurai dû prendre un autre nom de variable car ça prête à confusion.
Tu peux la modifier en modifiant aussi dans la déclaration Dim Fini as Listobject.
Tu peux faire comme ci-dessous:
VB:
Dim c As Range, Toto As ListObject, Lig As ListRow, dl As Integer, i As Integer
   Set Toto = Sheets("fini").ListObjects("TbFini")

Bonne Continuation.
 

Discussions similaires

Réponses
26
Affichages
374

Statistiques des forums

Discussions
312 166
Messages
2 085 898
Membres
103 022
dernier inscrit
Ouékino