Macro de copie

Rebonjour, je vous joins un fichier ou tout est expliqué, en fait le problème de ma macro c'est quelle copie toutes valeurs à chaque fois.

14classeur1.zip (15.99 Ko)

Bonjour,

en fait tu voudrais copier que les lignes ajoutées ?

une solution (pas sûr que ce soit la meilleure !)

tu planque dans un coin, la dernière ligne utilisée (ici en K1)

Sub essai()
Dim LgA%, Lg%
     With Sheets("Feuil2")
         LgA = .Range("k1") + 1                              'repère de ligne avant ajout
         Lg = .Range("a65536").End(xlUp).Row + 1
         Range(.Cells(LgA, "a"), .Cells(Lg, "a")).Copy

         With Sheets("Feuil1")
             .Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
         End With

         Application.CutCopyMode = False
         .Range("k1") = .Range("a65536").End(xlUp).Row       'pour le prochain coup
     End With
End Sub

Amicalement

Claude

11djfa-copie.zip (14.33 Ko)

Bonjour

Bonjour Claude

Pas tout compris ce que tu veux faire

A voir

Bonjour,

Je ne suis pas certain de comprendre ton problème Que veux-tu faire au juste? Seulement copier les nouvelles valeurs ajoutées en Feuil2 ??

Note : Essaie d'éviter les .Select dans la macro. Ça ralentit énormément... Tu peux faire la même chose avec ceci :

Sub Copier2()
    Sheets("Feuil2").Range("A1:A25").Copy Sheets("Feuil1").Range("A4")
End Sub

A+

Oui je veux juste copier les nouvelles valeurs.

-- Dim Juin 05, 2011 2:56 pm --

dubois a écrit :

Bonjour,

en fait tu voudrais copier que les lignes ajoutées ?

une solution (pas sûr que ce soit la meilleure !)

tu planque dans un coin, la dernière ligne utilisée (ici en K1)

Sub essai()
Dim LgA%, Lg%
     With Sheets("Feuil2")
         LgA = .Range("k1") + 1                              'repère de ligne avant ajout
         Lg = .Range("a65536").End(xlUp).Row + 1
         Range(.Cells(LgA, "a"), .Cells(Lg, "a")).Copy

         With Sheets("Feuil1")
             .Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
         End With

         Application.CutCopyMode = False
         .Range("k1") = .Range("a65536").End(xlUp).Row       'pour le prochain coup
     End With
End Sub

Amicalement

Claude

Que fait cette ligne k1 ? sinon ta macro sélectionne deux lignes, pourquoi ?

-- Dim Juin 05, 2011 7:52 pm --

Pour le k1, j'ai compris.

-- Dim Juin 05, 2011 7:55 pm --

-- Dim Juin 05, 2011 11:48 pm --

Est-ce possible de se passer de ce k1 ?

Bonjour à tous,

ici le "K1" agit comme un compteur, à chaque fin de macro il note la dernière ligne utilisée,

cette cellule pourrait être n'importe où (voir masquée)

Il y a surement mieux à faire si tu nous explique l'objectif de cette macro et dans quel contexte

elle sera utilisée.

Essaye de fournir un fichier un peu + représentatif.

Amicalement

Claude

Je joindrais un autre fichier dans la journée.

-- Lun Juin 06, 2011 1:24 pm --

Voilà je poste mon fichier complet, avec les deux aides demandées il y a peu.

Je veux que quand je mets des valeurs dans la tableau en feuille2 et que je clique sur "Go" elles soient copiées sur la feuille1 et que dès qu'une case vide se remplie le son s'active.

Si je rajoute une valeur sur la feuille2 elle s'ajoute sur la feuille1 en activant le son puisque une nouvelle cellule sera remplie. Merci pour votre aide précieuse.

6essai-bruit.rar (37.44 Ko)
Rechercher des sujets similaires à "macro copie"