Copie increment de ligne vers feuil contenant 2 tablea

Bonjour forum,

néophyte en VBA ? J'aurai besoin d'un petit coup de main pour mon fichier

dans ce fichier j'ai créé 2 bouton sur la feuil "Compteurs" 2 horaires différents qui me permettrai en cliquant dessus de copier la dernière ligne de chaque tableau dans chacun des tableaux de la feuil "Recap" correspondant aux horaires avec incrémentation pour chaque journées.

je ne sais pas si je suis très claire mais je vous fais confiance.

un grand merci pour votre aide

Phil

Bonjour,

pourquoi des dates dans récap et pas dans compteurs et pas de nom dans recap et bien dans compteurs ?

P.

Merci pour l'attention

je veux juste copier les dernières lignes des tableaux de la feuille" Compteurs" vers les tableaux respectif de la feuil "Recap" les unes après les autres

les tableaux changent tous les jours !

ce qui m'intéresse c'est la dernière ligne a reporter

rien de plus.

Merci

re,

une manière de faire comme ceci

P.

oui c'est presque ca sauf que ca modifie les autres lignes

au final je me retrouve avec les meme données sur chaque ligne de la feuille recap

il faudrait conserver les lignes déjà saisie

c'est cool merci

loisphil a écrit :

oui c'est presque ca sauf que ca modifie les autres lignes

au final je me retrouve avec les meme données sur chaque ligne de la feuille recap

il faudrait conserver les lignes déjà saisie

c'est cool merci

Dans ton fichier originel; tu écris ceci:

25 204 183 32 18 25

ligne a copier sur la feuil Recap

donc j'ai copié cette ligne (sans "S") donc une seule ligne, donc soit je comprends mal , soit tu expliques mal le besoin ...

P.

ok desolé

je reprends

je saisi dans les tableaux horaire des données qui vont changer tous les jours.

la dernière ligne de ces tableaux doit être copiée dans la feuil recap dans chacun des tableaux ce que tu as fait, parfait !

le truc c'est que quand je clic une première fois les lignes se copie la c'est bon mais des que je change les valeurs dans les tableaux "compteurs" les valeurs se répercutent aussi sur les lignes précédentes donc identique ca ne garde les saisies précédentes

ok...

je copiais AVEC formules

Les 2 codes modifiés copies les valeurs à présent

Option Explicit ' obligation de déclarer les variables
Sub Gauche()
' déclaration des variables
'Integer % 'Long   & 'Currency  @'Single  ! 'Double  #
'String  $
Dim D1, D2, C, mRange
Dim F1, F2 As Worksheet
Dim Last%, Last2%
Dim Rng, DEST As Range
Dim a()
Set F1 = Sheets("compteurs"): Set F2 = Sheets("recap") ' facilite la sélection des feuilles
'F2.[A2:A100].ClearContents
F1.Select
'Set D1 = CreateObject("Scripting.Dictionary") ' déclaration de dictionnaire
'Set D2 = CreateObject("Scripting.Dictionary")
Last = F1.[B65000].End(xlUp).Row ' dernière ligne occupée de la colonne
Set mRange = F1.Range("B" & Last & ":G" & Last)
mRange.Copy
F2.[B65000].End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

Sub Droite()
' déclaration des variables
'Integer % 'Long   & 'Currency  @'Single  ! 'Double  #
'String  $
Dim D1, D2, C, mRange
Dim F1, F2 As Worksheet
Dim Last%, Last2%
Dim Rng, DEST As Range
Dim a()
Set F1 = Sheets("compteurs"): Set F2 = Sheets("recap") ' facilite la sélection des feuilles
'F2.[A2:A100].ClearContents
F1.Select
Last2 = F1.[J65000].End(xlUp).Row ' dernière ligne occupée de la colonne
Set mRange = F1.Range("J" & Last2 & ":P" & Last2)
mRange.Copy
F2.[J65000].End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

Bonjour,

Une proposition sur la base que le mieux est toujours de ne pas copier !

Sub ReportCompteurs()
    Dim lo$, k%, n%
    lo = Replace(Application.Caller, "Cpt", "")
    k = IIf(IsNumeric(Right(lo, 1)), 10, 2): n = 4
    With Worksheets("Recap")
        Do While .Cells(n, k) <> "" Or .Cells(n, k - 1) = ""
            n = n + 1
        Loop
        .Cells(n, k).Resize(, 6).Value = Worksheets("COMPTEURS").ListObjects(lo).TotalsRowRange.Value
        .Activate
    End With
End Sub

NB- Les deux boutons sont renommés : CptVentes pour le bouton 1 et CptVentes4 pour le bouton 2. La même macro est affectée aux deux boutons.

La macro recupère dans une variable la 2e partie du nom du bouton qui l'a appelée et qui correspond au nom du tableau Excel dont la ligne Total est à récupérer.

Ce nom de tableau permet également d'identifier la 1re colonne de la ligne à servir : B (2) ou J (10). On recherche la première ligne vide. Egalement, bien qu'il n'en ait pas été fait mention, on veille qu'une date figure dans la colonne précédente (s'il n'y a pas lieu d'en tenir compte, supprimer la 2e condition : Or .Cells(n ,k - 1) = "").

Une fois la ligne cible définie, on lui affecte les valeurs de la ligne Total du tableau voulu (sans copier ni coller).

Cordialement.

C'est nickel !!! Mferran

Merci a vous deux pour votre attention et votre aide

je vais tester ca cet aprem

Je vous tiens au courant

Bonjour Fernand,

pour quelle raison n'est il pas mieux de copier ?

Merci

Patrick

Une proposition sur la base que le mieux est toujours de ne pas copier !

Raison essentielle : c'est plus rapide.

C'est aussi en général plus simple à écrire qu'un copier-coller : Plage2.Value = Plage1.Value !

Il n'y a pas le cas échéant à se soucier de vider le presse-papier dans le cas où l'on termine sur le collage.

Evidemment, si on copie et colle simultanément des contenus, des formats et des mises en forme, la copie reprend un avantage... mais ce n'est pas le cas général qu'on rencontre. On voit même très souvent des copie-collage valeurs (encore plus long que la copie ordinaire).

La méthode VBA (proprement VBA puisque non réalisable manuellement) garde donc un avantage certain de façon générale... Pour les cas particuliers il faut les voir cas par cas.

Cordialement.

MFerrand a écrit :

Raison essentielle : c'est plus rapide.

C'est aussi en général plus simple à écrire qu'un copier-coller : Plage2.Value = Plage1.Value !

Il n'y a pas le cas échéant à se soucier de vider le presse-papier dans le cas où l'on termine sur le collage.

Evidemment, si on copie et colle simultanément des contenus, des formats et des mises en forme, la copie reprend un avantage... mais ce n'est pas le cas général qu'on rencontre. On voit même très souvent des copie-collage valeurs (encore plus long que la copie ordinaire).

La méthode VBA (proprement VBA puisque non réalisable manuellement) garde donc un avantage certain de façon générale... Pour les cas particuliers il faut les voir cas par cas.

Cordialement.

D'accord avec toi mais je pense que pour si il y a peu de lignes, toutes les méthodes sont valables et comme je dis parfois, si au bout de ta journée tu as gagné 2 secondes, tu en fais quoi ? /Humour/

Salut !

2 secondes, c'est déjà énorme ! On est généralement toujours en dessous de la 1/2 seconde pour les mesures, voire sur les tests en modèles réduits, en dessous de 100 millisecondes...

Le problème est de conserver en permanence une fluidité d'utilisation, et on ne s'y prend jamais assez tôt...

Si beaucoup de solutions fournissent un résultat acceptable dans la majorité des cas, il est bon de ne pas attendre que ce ne soit plus le cas pour opérer des révisions. Mieux vaut chercher l'optimisation dès le départ que tenter de la reconstruire tant mal que bien après coup.

Ceci dit, j'adore perdre le temps gagné ! mais le perdre vraiment, à mes conditions, et non dans une fausse occupation.

Cordialement.

Bonjour a tous !

Me revoici dans le besoin pour un nouveaux code tout d'abord un grand merci a Mferran et patrick1957 qui m'ont bien aider

pour mon fichier.

j’ai une deuxième requête pour ce fichier

Dans la feuille "Stats Compteurs individuels" je souhaiterai copier uniquement les valeurs du tableau Quantitatif journées individuel (les valeurs vont changer tous les jours) dans le grand tableau Histo compteur individuel en les incrémentant

merci pour votre aide

Phil

Rechercher des sujets similaires à "copie increment ligne feuil contenant tablea"