macro copier coller avec changement de destination

  • Initiateur de la discussion Steph
  • Date de début
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 :
 

ChTi160

XLDnaute Barbatruc
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:
S

Steph

Guest
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
 

ChTi160

XLDnaute Barbatruc
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:
S

Steph

Guest
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
 

ChTi160

XLDnaute Barbatruc
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
 
S

Steph

Guest
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
 

ChTi160

XLDnaute Barbatruc
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é
 

ChTi160

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
56
Affichages
1 K

Statistiques des forums

Discussions
312 612
Messages
2 090 230
Membres
104 453
dernier inscrit
benjiii88