copie de certaines cellules vers une autre feuille

chinel

XLDnaute Impliqué
Bonjour tout le monde !
je cherche à faire une macro de copier/coller de certaines cellules de ma feuille vers une autre feuille
exemple:
copier valeur cellule H5 et I3 de ma feuille 1 / coller dans la cellule A1(pour H5) et B2(pour I3) de ma feuille 2
si je recommence, copier cellule H5 et I3 de ma feuille 1 / coller dans la cellule A2(pour H5) et B3(pour I3) de ma feuille 2
etc ... (End(xlUp)().Row)


Merci de votre aide !
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copie de certaines cellules vers une autre feuille

Bonjour Chinel, bonjour le forum,

peut-être comme ça :
Code:
Sub Macro1()
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
    'définit la cellule de destination dest (A1, si A1 est vide, sinon la première cellule vide de la colonne A)
    Set dest = IIf(.Cells(1, 1).Value = "", .Cells(1, 1), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
End With 'fin de la prise en compte de l'onglet "Feuil2"
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    .Range("H5").Copy dest 'copie H5 dans dest
    .Range("I3").Copy dest.Offset(1, 1) 'copie I3 dans dest décalé d'une colonne vers la droite et d'une ligne vers le bas
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
 

chinel

XLDnaute Impliqué
Re : copie de certaines cellules vers une autre feuille

Bonjour Robert merci de ton aide mais cette macro fonctionne bien mais pas comme je voudrais explication:
ma feuille se nomme "Modfacture" je rentre une donnée dans la cellule H5 de même pour G7 et G8 puis je clique sur un bouton pour copier/coller (sans les mises en formes) ces données sur la feuille "Client" dans la cellule A2 pour H5, B2 pour G7, C2 pour G8 puis un autre jour, je recommence mais les données vont toujours se mettre dans la feuille "Client" mais dans la cellule A3 pour H5, B3 pour G7, .... (avec la fonction Row count), voilà j'espère être clair dans mon explication merci de ton soutient !
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : copie de certaines cellules vers une autre feuille

Bonjour Robert , Chinel et les mebres de ce merveilleux Forum

Une autre façon de faire, peut être plus appréhendable pour le néophyte.

De plus Chinel , tu nous à livré un peu plus d'explications , car sans fichier et sans toutes les spécifications, il est sur que cela revient à regarder dans une boule de cristal.

Enfin voici le code, Merci de passer ce sujet à résolu si tel est le cas , sinon , je pense qu'un fichier joint sera indispensable? ( Ma boule de cristal est en réparation)

Code:
Option Explicit

Sub Recopie()
'Transfert données de la fiche ModFaxture vers la fiche Client
Dim Source As String
Dim Cible As String
Dim LigneEncours As Long
'Chargement du nom des feuilles origine et destination
Source = "ModFacture"
Cible = "Client"
'Calcul de la ligne courante
LigneEncours = Worksheets(Cible).Range("A" & Rows.Count).End(xlUp).Row + 1
'Copie des valeurs
With Worksheets(Cible)
 .Range("A" & LigneEncours) = Worksheets(Source).Range("H5").Value
 .Range("B" & LigneEncours) = Worksheets(Source).Range("G7").Value
 .Range("C" & LigneEncours) = Worksheets(Source).Range("G8").Value
End With
End Sub
 

chinel

XLDnaute Impliqué
Re : copie de certaines cellules vers une autre feuille

SUPER merci ! et peut on mettre ceci en plus ?

Option Explicit

Sub Recopie()
'Transfert données de la fiche ModFaxture vers la fiche Client
Dim Source As String
Dim Cible As String
Dim LigneEncours As Long
'Chargement du nom des feuilles origine et destination
Source = "ModFacture"
Cible = "Client"
'Calcul de la ligne courante
LigneEncours = Worksheets(Cible).Range("A" & Rows.Count).End(xlUp).Row + 1
'Copie des valeurs
With Worksheets(Cible)
.Range("A" & LigneEncours) = Worksheets(Source).Range("H5").Value
.Range("B" & LigneEncours) = Worksheets(Source).Range("G7").Value
.Range("C" & LigneEncours) = Worksheets(Source).Range("G8").Value
End With (petit code en plus)

Dim OldNO As Integer
Dim NewNO As Integer
OldNO = Sheets("Compteur").Range("A1").Value
NewNO = OldNO + 1
MsgBox "Numéro de facture : " & NewNO
Range("A1").Value = NewNO
Sheets("Modfacture").Range("E14").Value = " " & NewNO
End Sub

car j'ai testé mais la msgbox indique toujours le même chiffre (pas de compteur) bizarre ?
ou le problème ? merci te votre aide !
 

camarchepas

XLDnaute Barbatruc
Re : copie de certaines cellules vers une autre feuille

Chinel,

Le problème est qu'il faut définir les feuille en permanence, surtout lorsque l'on travail sur plusieurs onglets

Code:
Option Explicit

Sub Recopie()
'Transfert données de la fiche ModFaxture vers la fiche Client
Dim Source As String
Dim Cible As String
Dim LigneEncours As Long
Dim OldNO As Integer
Dim NewNO As Integer

'Chargement du nom des feuilles origine et destination
Source = "ModFacture"
Cible = "Client"
'Calcul de la ligne courante
LigneEncours = Worksheets(Cible).Range("A" & Rows.Count).End(xlUp).Row + 1
'Copie des valeurs
With Worksheets(Cible)
.Range("A" & LigneEncours) = Worksheets(Source).Range("H5").Value
.Range("B" & LigneEncours) = Worksheets(Source).Range("G7").Value
.Range("C" & LigneEncours) = Worksheets(Source).Range("G8").Value
End With

OldNO = Sheets("Compteur").Range("A1").Value
NewNO = OldNO + 1
MsgBox "Numéro de facture : " & NewNO
Sheets("Compteur").Range("A1").Value = NewNO
Sheets("Modfacture").Range("E14").Value = " " & NewNO
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 372
Membres
102 876
dernier inscrit
BouteilleMan