Macro pour copier une ligne vers autre feuille

Zep974

XLDnaute Nouveau
Bonjour,

Tout d'abords, bravo pour ce forum, très utile pour les néophytes du VBA, et en général pour tout utilisateur d'excel, peu importe son utilisation !
Je suis strictement ''ignard'' concernant le language VBA, et vais donc exposer mon problème de façon la plus simple possible :

Je possède un classeur de 3 feuilles : *'tarif' dans laquelle je saisis des donnée manuellement
*'recap' dans laquelle ces données sont répertiorées sur une ligne
*'final' dans laquelle je souhaite mettre les lignes intéressantes de 'recap' les une à la suite des autres.

Au final, je souhaite créer une macro me permettant , à chaque utilisation de cette dernière, de copier les valeurs de la ligne 4 de ma feuille 'recap' vers la première ligne non-vide de la feuille 'final'.

J'espère que mon problème est compréhensible. Je ne sais pas si ce problème est résoluble ne conaissant absolument rien en language VBA. J'ai des bases d'algorithme, je me débrouille en "formule", mais le VBA, c'est un mystère ! ^^

Je vous remercie d'avance pour vos réponses !

Cordialement

Ben
 

mintri

XLDnaute Occasionnel
Re : Macro pour copier une ligne vers autre feuille

Hello,

Une solution envisageable (peut-être pas très optimisée) :

Sub test2()

Dim lastline As Integer

lastline = Sheets("final").Range("A65536").End(xlUp).Row + 1

Sheets("recap").Cells(4, 1).EntireRow.Copy
Sheets("final").Select
Sheets("final").Cells(lastline, 1).EntireRow.Select
ActiveSheet.Paste

End Sub
 

fanfan38

XLDnaute Barbatruc
Re : Macro pour copier une ligne vers autre feuille

Bonjour et bienvenu sur le site
Un fichier exemple est toujours apprécié...
sub macro1
derlig=sheets("final").range("a65536").end(xlup).row+1
sheets("final").cells(derlig,1).value=sheets("recap").range("a4").value
sheets("final").cells(derlig,2).value=sheets("recap").range("b4").value
sheets("final").cells(derlig,3).value=sheets("recap").range("c4").value
sheets("final").cells(derlig,4).value=sheets("recap").range("d4").value
sheets("final").cells(derlig,5).value=sheets("recap").range("e4").value
end sub

A+ François
 

Zep974

XLDnaute Nouveau
Re : Macro pour copier une ligne vers autre feuille

Merci mintri,

Premièrement, désolé pour l'absence de fichier, mon classeur étant quelque peu ... "compliqué" à simplifié :s
Concernant ton code mintri : j'aimerais ne coller que les valeur.
C'est donc la
Code:
ActiveSheet.Paste
qu'il faudrait changer c'est ça ?
peut-on la remplacer par quelque chose comme
Code:
Selection.PasteSpecial Paste:=xlPasteValues
??

je n'y connais rien, j'ai l'impression qu'en testant ça sur mon fichier, cela copie bien les valeurs, mais je ne suis pas sur que cela fonctionne réellement ...

Merci pour les réponses en tout cas !

Cordialement

Ben
 

mintri

XLDnaute Occasionnel
Re : Macro pour copier une ligne vers autre feuille

Hello tout le monde,

Oui en fait dans mon code la ligne :

lastline = Sheets("final").Range("A65536").End(xlUp).Row + 1

permet de sélectionner la dernière ligne non vide de la feuille "final" en fonction du contenu de la colonne A. On cherche donc la dernière cellule non vide et on ajoute 1 (d'où le +1). Ensuite c'est tout simplement un copier-coller mais tu peux effectivement préciser en valeur.
 

Zep974

XLDnaute Nouveau
Re : Macro pour copier une ligne vers autre feuille

Bonjour à tous,

Et merci de m'avoir aidé. La macro de mintri fonctionne tel que je le souhaitais, avec le copier en valeur rajouté par mes soins.
Merci à tous pour vos réponses, et longue vie à ce forum ;)


Tchao.

Ben
 

Nightwish56

XLDnaute Nouveau
Re : Macro pour copier une ligne vers autre feuille

Bonjour à tous !
J'ai vue la discussion qui pourrait m'aider mais mon cas est un peu plus complexe car je ne m'y connais pas trop en macro.

J'ai deux classeur. Inventaire1 et Inventaire2.

Inventaire1 (exemple)
N° Inventaire Marque Model Statue Nom machine
P256JK FUJITSU RS100 S5 Available SRV-DPL

Inventaire2 (exemple)
Nom Code Numero Etat S/N Modèle
SRV-DPL-BDD P256JKDD 107262 A renseigner XXX1111XXXX DL55380 G64

Donc j'ai déjà réussi à obtenir dans Inventaire1 une case avec la fonction :
=SI(RECHERCHE(J3;'\\Chemin\RESEAU\**\**\Inventaire\[Inventaire2.xls]Serveurs'!$B$2:$B$5000)=J3;"Ok";"")
Si N° Inventaire de Inventaire1 est trouvée dans Inventaire2 marque Ok ( PS: sa marche ! )
Mais je souhaiterais que suite à cette recherche la ligne dans Inventaire correspondante soit rapatrier dans Inventaire1 feuille Fichier

Est-ce de votre niveau ? ou est-ce impossible ??
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 655
Messages
2 111 604
Membres
111 217
dernier inscrit
aladinkabeya2