macro copier coller avec changement de destination

  • Initiateur de la discussion Initiateur de la discussion Steph
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Steph

Guest
Bonjour à tous,

Voici mon petit soucis. Je n'ai pas réussi à trouver de solution qui me convienne dans les archives bien qu'elles soient fournies dans le domaine.

Je souhaiterais générer une macro qui copient les valeurs des cellules F4 à F20 de la feuille 1 et les collent dans le cellules B4 à B20 de la fauille 2. Pas de souci jusque là

La difficulté est qu'une fois cette opération effectuée, j'aimerais re-copier les valeurs F4-F20 de la feuille 1 (qui auront changé) et les coller cette fois dans les celules C4 à C20 de la feuille 2. Et ainsi de suite jusquà la colonne M.

Auriez vous des conseils ou des bouts de code à me proposer?

Merci beaucoup

NB: mon classeur s'ouvre sur la feuille 2 par défaut, comment lui expliquer que 1 précède 2? laugh: Merci

Steph :
 
Salut'Steph'
en pièce jointe un exemple
qui ne prend pas en compte que la plage F4:F20 soit vide
elle copie meme vide
mais on peut améliorer [file name=TransfertDeRange.zip size=9327]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TransfertDeRange.zip[/file]

Message édité par: ChTi160, à: 11/03/2005 17:25
 
Dernière édition:
Rebonjour,

bon, finalement, il ya un hic :

Je n'arrive pas à utiliser ta macro comme je le souhaiterais. Comment faire pour que la fonction Transfert ne coupe pas mais copie/colle dans le deuxième classeur?
Aussi, je n'ai pas réussi à faire démarrer le processus sur la colonne B et non la C.

Quelqu'un peut-il m'aider?

Merci 🙂

Steph
 
Salut'Steph'
en pièce jointe les corrections sont faites [file name=TransfertDeRangeV2.zip size=8902]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TransfertDeRangeV2.zip[/file]
 
Dernière édition:
Rebonjour à tous,

On me demande de faire une petite évolution de cette macro et j'ai du mal...

Je souhaiterais que cette macro copie les valeurs des cellules F4 à F20 de la feuille 1 et les collent dans le cellules B4 à B20 de la fauille 2. Pas de souci jusque là

La difficulté est qu'une fois cette opération effectuée, j'aimerais re-copier les valeurs F4-F20 de la feuille 1 (qui auront changé) et les coller cette fois dans les celules C4 à C20 de la feuille 2.

Et ainsi de suite 6 fois jusquà la colonne G. Une fois qu'on a collé dans la colonne G, j'aimerais continuer l'opération en sautant une colonne (la colonne H) et en commencant cette fois à la colonne I De nouveau 6 fois, on saute la colonne O on copie 6 fois et on s'arrête là.

Ca complique vachement l'opération car il faut insérer une double boucle (je crois). J'ai du mal à faire évoluer cette macro. Quelqu'un aurait-il une idee ?

Merci pour votre aide.

Steph
 
salut'Steph'
je viens de faire un dessin pour essayé de comprendre la manoeuvre
explique moi ce que veux dire
La difficulté est qu'une fois cette opération effectuée, j'aimerais re-copier les valeurs F4-F20 de la feuille 1 (qui auront changé) et les coller cette fois dans les celules C4 à C20 de la feuille 2.

si les valeurs changent, c'est pendant que la macro est arrêtée ?
ou le changement se fait durant la macro ???????
tiens moi au courant je verrai
 
Bonjour à tous et bonjour à toi ChTi160,

En fait j'ai réussi à régler le soucis de changement de valeurs.

La macro que tu m'as créée est super. J'essaie de la faire évoluer pour copier les valeurs des cellules F4 à F21 de la feuille 1 et les copier dans la plage B7-B24 de la feuille 2. Toujours en gardant le déplacement de colonne (B, ensuite C, etc)

Le code suivant fonctionne pour coller la première dans la colonne B mais ne permet pas de décalage de colonnes. Comprends-tu pourquoi?

Sub transfert()
Dim maplage As Range
Dim col As Byte
Application.ScreenUpdating = False

With Sheets('Feuil1')
.Select
Set maplage = .Range('F4:F21')
maplage.Select
Selection.Copy
End With

With Sheets('Feuil2')
.Select
col = .Range('IV4').End(xlToLeft).Column
If col < 2 Then
col = 2
.Range(.Cells(7, col), .Cells(24, col)).Select
ActiveSheet.Paste
Else
col = .Range('IV4').End(xlToLeft).Column + 1
.Range(.Cells(7, col), .Cells(24, col)).Select
ActiveSheet.Paste

End If
End With
Sheets('Feuil1').Select
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub



Merci

Steph
 
Salut 'Steph'
essayes de remplacer dans ta macro par ce qui est en Gras
With Sheets('Feuil2')
.Select
col = .Range('IV7').End(xlToLeft).Column
If col < 2 Then
col = 2
.Range(.Cells(7, col), .Cells(24, col)).Select
ActiveSheet.Paste
Else
col = .Range('IV7').End(xlToLeft).Column + 1
.Range(.Cells(7, col), .Cells(24, col)).Select
ActiveSheet.Paste

je vais resté
 
Re:macro copier coller avec changement de destinat

Salut 'Steph
voilà la macro modifiée
j'avais oublié quelques modifs je n'avais ouvert le fichier pour répondre la première fois
Sub transfert()
Dim maplage As Range
Dim col As Byte
Application.ScreenUpdating = False
With Sheets('Feuil1')
.Select
Set maplage = .Range('F4:F20')
maplage.Select
Selection.Copy
End With
With Sheets('Feuil2')
.Select
col = .Range('IV7').End(xlToLeft).Column
If col < 2 Then
col = 2
.Range(.Cells(7, col), .Cells(23, col)).Select
ActiveSheet.Paste
Else
col = .Range('IV7').End(xlToLeft).Column + 1
.Range(.Cells(7, col), .Cells(23, col)).Select
ActiveSheet.Paste

End If
End With
Sheets('Feuil1').Select
Application.CutCopyMode = False

Application.ScreenUpdating = True
End Sub

Message édité par: ChTi160, à: 21/03/2005 17:49
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
373
Retour