Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro copie de données

S

Seb

Guest
bonjour le FORUM nocturne !

je cherche à faire qu'une macro me copie des données sur une feuille du même classeur ... et que chaque copie des données aille à côté des autres précédemment enregistrées.

merci par avance !!!!

Seb
 

Pièces jointes

  • copie.zip
    2.3 KB · Affichages: 9
  • copie.zip
    2.3 KB · Affichages: 9
  • copie.zip
    2.3 KB · Affichages: 9
S

Seb

Guest
hello,

la macro de ce document ne fait que copier les informations d'une feuille à une autre. si je rentre des informations différentes, elles ne se stockent pas à côté des autres déjà copiées.

A+

SEB
 
M

Moa

Guest
Salut Seb !

Une macro simple.

Sub Macro1()
Range("D5:E29").Select
Selection.Copy
Sheets("sauvegarde").Select
If Range("D5") <> "" Then
Range("D5").End(xlToRight).Offset(0, 1).Select
Else: Range("D5").Select
End If
ActiveSheet.Paste
End Sub


@ +

Moa
 

Pièces jointes

  • copie.zip
    7.4 KB · Affichages: 34
  • copie.zip
    7.4 KB · Affichages: 31
  • copie.zip
    7.4 KB · Affichages: 32
S

Seb

Guest
Hello "Moa"

je te remercie bcp c'est ce exactement ce que je demandais !

merci encore ... et si j'abusais, j'aimerais savoir si tu pouvais m'expliquer ce que chaque ligne de codes signifie. Je suis un jeune novice en VB ... je suis en train d'apprendre.

A+

Seb
 
M

Moa

Guest
Salut !

Range("D5:E29").Select

Selectionner Plage de Cellule de D5 à E9

Selection.Copy

Copier dans le presse-papier tout le contenu

Selectionner Feuille Nommée "sauvegarde"

Notion If Then Else : Si Alors Sinon

Si tel condition est remplie Alors Faire Blabla Sibon Faire autre chose.

If Range("D5") <> "" Then :

Si la Cellule D5 n'est pas vide Alors

Range("D5").End(xlToRight).

Va en cellule D5, Va à la dernière cellule non vide à sa droite

Offset(0, 1).Select

Fait un décalage de 0 ligne et une colonne et sélectionne cette cellule

Else: Range("D5").Select : Sinon, si la condition n'est pas respectée, alors
sélectionne la Cellule D5

Active.Sheet.Paste : Copie le contenu du presse-papier précedemnt gardé en mémoire.

Et voilà, c'est une forme très simple, mais il y a d'autres manières plus évoluées.

Cette fonctionnera tant que ce cas de figure sera respecté, mais si par exemple tu avais des colonnes vides dans ton tableau, elle ne fonctionnerait plus dès le deuxième lancement.

Il faudrait alors ne plus partir de ta cellule D5, mais de la dernière colonne de ta feuille et faire un "End (xlToLeft)".

Maintenant "ActiveSheet.Paste", te copie toute la cellule, cad le contenu, la formule, le format etc...

Si tu ne voulais que la valeur il faudrait faire un Paste special=xlValue.

Le mieux pour apprendre et faire une macro, est de lancer l'enregistreur de macro, tu fais toutes tes manips manuellement, puis tu ouvres ta macro Via Vbe et tu la modifies pour soit y ajouter une boucle de test ou simplement virer les termes en trop.

@ +

Mo
 
M

Miche II

Guest
Je peux compliquer l'affaire?
Disons que dans SauvegardePhegor.zip que les lignes et colonnes A1:E15 soit remplies. Et admettons que la feuille excel dite "sauvegarde" soit une feuille excel de presentation differente (que j'appele PSD) que celle de la page saisie (SAISI). Je veux copier les cellules "chats" - "Noir" et "chien" - "blanc" dont à priori je connais pas l'emplacement exact dans la matrice A1:E15 de PSD.
J'ai bien essayé avec rechercheV et rechercheH mais impossible d'incrementer à une ligne inferieur.
J'espere avoir été clair.
Merci d'avance.
 

Discussions similaires

Réponses
8
Affichages
254
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…