Transfert de données de feuille à feuille

Bonjour le Forum,

J'ai une feuille de "Saisie" de données avec un nombre de lignes variable et de colonnes fixe avec titres.

Une fois la saisie faite, je souhaite transférer ces données telles quelles (format, valeur, formule) dans la feuille "Report".

Une fois ce transfert effectué, les données de la feuille "Saisie" sont effacées automatiquement pour permettre une nouvelle saisie qui, à son tour sera transférée dans la feuille "Report" à la suite de la première saisie, etc...

Est ce que cette manipulation est possible ? et si oui, comment procéder SVP ?

Merci pour l'intérêt que vous portez à ce sujet

Cordialement

Fat

Bonjour,

à tester,

Sub Reporter()
Dim sh1, sh2, LastRw1 As Long, LastRw2 As Long
Set sh1 = Sheets("Saisie")
Set sh2 = Sheets("Report")
LastRw1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row
LastRw2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1

sh1.Range("A2:E" & LastRw1).Copy sh2.Range("A" & LastRw2)
 With sh2.Range("A1").CurrentRegion
  .Value = .Value
 End With
sh1.Range("A2:E" & LastRw1).ClearContents
End Sub

Je joints un fichier pour mieux illustrer mon problème

23support.xlsx (59.15 Ko)

Bonsoir,

Pour préserver les entêtes si la macro est lancé à vide sur le tableau de saisie [et en vert ce qui pour moi est inutile après l'avoir testé mais je reste ouvert aux explications !] :

Sub Reporter()

Dim sh1, sh2, LastRw1 As Long, LastRw2 As Long

Set sh1 = Sheets("Saisie")

Set sh2 = Sheets("Report")

LastRw1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row

LastRw2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1

If LastRw1 = 1 Then Exit Sub

sh1.Range("A2:E" & LastRw1).Copy sh2.Range("A" & LastRw2)

'With sh2.Range("A1").CurrentRegion

'.Value = .Value

'End With

sh1.Range("A2:E" & LastRw1).ClearContents

End Sub

Simple et efficace, tout l'honneur revient à mon prédécesseur (réponse précédente) tout de même.

Excusez moi, j'ai collé la macro dans un nouveau module, mais il ne se passe rien dans le transfert attendu.

Est ce qu'il faut un bouton, et si oui, comment le faire ?

Merci pour votre aide.

Fat

Je viens de consulter le fichier, si je comprend bien il faut trouver le nbre de valeurs (lignes) à recopier sur le tableau support comme toutes les colonnes ne sont pas systématiquement remplies, il faut que LastRw1 puisse contenir le nbre de lignes à recopier (a toi de choisir une colonne qui serait systématiquement remplies).

De plus il faut conserver les formules dans les cellules si je comprends bien ?

Pour la macro, il faut un bouton, pour ce faire tu peux mettre une forme en place (rectangle ou autre) et clic droit affecter une macro.

Mais dans l'état cela ne fonctionnera pas comme tu le désires car il faut une variable "sûre"qui reprend le nombre de lignes complétés.

Bonjour à tous,

Fat, lorsque l'on utilise les Tableau il faut éviter les ligne vides, car dans ce cas c'est difficile de trouver la dernière ligne,

la macro est sur le module1

25fat-support.xlsm (53.03 Ko)

Bonjour,

J'ai un petit souci avec la macro proposée :

Sub Reporter()

Dim sh1, sh2, LastRw1 As Long, LastRw2 As Long

Application.DisplayAlerts = False

Set sh1 = Sheets("Saisie")

Set sh2 = Sheets("Report")

LastRw1 = sh1.Cells(Rows.Count, 9).End(xlUp).Row

LastRw2 = sh2.Cells(Rows.Count, 9).End(xlUp).Row + 1

sh2.Range("A" & LastRw2 & ":U" & LastRw2 + 5 - 1).Value = sh1.Range("A5:U" & LastRw1).Value

sh1.Range("A5:U" & LastRw1).Copy

sh2.Range("A" & LastRw2).PasteSpecial xlPasteFormats

Application.DisplayAlerts = True

End Sub

Comment faire pour que le transfert ne se limite pas à 5 lignes, mais prenne en charge toute la saisie (qui peut aller de 2 à 99 lignes) ?

Le "5" est dans cette ligne : sh2.Range("A" & LastRw2 & ":U" & LastRw2 + 5 - 1).Value = sh1.Range("A5:U" & LastRw1).Value

Peut on le remplacer par une valeur flottante en fonction du nombre de lignes à transférer ?

Le bouton de transfert sera plus pratique dans la feuille "saisie". Peut-on le déplacer sans altérer la macro ?

Merci pour aimable assistance.

Cordialement

Fat

17fat-support.xlsm (51.73 Ko)

Bonjour à tous,

Fat, j'ai repris votre premier fichier avec tableau, et modifier la macro

seul impératif, il ne doit pas y avoir de formule sur la colonne [Code Article]

sinon c'est impossible de trouver la dernière ligne renseignée

Sub Reporter()
Dim sh1, sh2, LastRw1 As Long, LastRw2 As Long

Set sh1 = Sheets("Saisie")
Set sh2 = Sheets("Report")
Set plg1 = sh1.Range("Saisie[Code Article]")
Set plg2 = sh2.Range("CTS[Code Article]")

LastRw1 = sh1.Cells(Range(plg1.Address).Rows.Count, Range(plg1.Address).Column).End(xlUp).Row
LastRw2 = sh2.Cells(Range(plg2.Address).Rows.Count, Range(plg2.Address).Column).End(xlUp).Row + 1

sh2.Range("A" & LastRw2 & ":U" & LastRw2 + 5 - 1).Value = sh1.Range("A5:U" & LastRw1).Value
End Sub
15fat-support-2.xlsm (67.70 Ko)

Désolé, mais ça ne marche pas chez moi.

Le transfert se limite toujours à 5 lignes !

Au secours !!!!

Ça serait bien aussi que la saisie soit effacée automatiquement après son transfert !

"Qui ne tente rien n'a rien"

Merci encore

autant pour moi, désolé.

voici la correction:

Sub Reporter()
Dim sh1, sh2, LastRw1 As Long, LastRw2 As Long

Set sh1 = Sheets("Saisie")
Set sh2 = Sheets("Report")
Set plg1 = sh1.Range("Saisie[Code Article]")
Set plg2 = sh2.Range("CTS[Code Article]")

LastRw1 = sh1.Cells(Range(plg1.Address).Rows.Count, Range(plg1.Address).Column).End(xlUp).Row
LastRw2 = sh2.Cells(Range(plg2.Address).Rows.Count, Range(plg2.Address).Column).End(xlUp).Row + 1

sh2.Range("A" & LastRw2 & ":U" & LastRw2 + LastRw1 - 5).Value = sh1.Range("A5:U" & LastRw1).Value
End Sub

Bonjour

Désolé à mon tour, mais ca ne marche pas chez moi.

J'ai remplacé "CTS" par "Report" qui est le nom de la 2ème feuille, mais rien n'y fait !

Il y a 2 objectifs à atteindre :

- 1 : copier l'ensemble des lignes saisies dans la feuille "Saisie" et les transférer dans la feuille "Report" intégralement, et chaque saisie à la suite de la précédente.

Nota : On peut accepter de perdre les formules dans le transfert, l'essentiel est que les valeurs saisies soient transférées avec leurs valeurs d'origine.

- 2 : effacer automatiquement les lignes saisies après leur transfert vers la feuille "Report".

Le bouton de transfert est placé dans la feuille "Saisie"

J'espère qu'on finira par trouver la solution souhaitée

Bonne journée

Fat

19fat-ep.xlsm (63.50 Ko)

J'ai remplacé "CTS" par "Report" qui est le nom de la 2ème feuille, mais rien n'y fait !

il ne faut pas faire ça,

CTS[Code Article] est le nom du Tableau de la feuille "Report"

Rechercher des sujets similaires à "transfert donnees feuille"