Macro copier-coller excel

Résolu/Fermé
jéjé - 7 juin 2010 à 20:03
 jéjé - 8 juin 2010 à 12:47
Bonjour,

j'ai un, en fait deux véritable casse-tête à résoudre!

J'ai un classeur Excel où j'ai des données en colonnes (A2, B2, C2, D2) que j'aimerais copier à l'aide d'une macro dans un autre classeur sous forme de ligne (B1, B2, B3, B4).

Est-il possible, d'ajouter une option à la macro, pour que les prochaines données s'écrivent à la ligne 3 du second classeur, puis à la 4ème, etc...?


Merci pour votre aide précieuse =)

A voir également:

3 réponses

Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 7/06/2010 à 20:37
Salut,

Sur quelle version excel !

tu parles bien de classeur différent, pas de feuille différente dans le même classeur.
s'il s'agit d'un autre classeur, est il dans le même répertoire !

Ensuite ce que tu demandes est faisable, la première question est une transposition et pour la deuxième un collage à la suite qui ne pose pas de problème
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
salut,
j'ai la version 2003 d'Excel, et oui il s'agit bien d'un classeur différent et non d'une feuille.
Qu'est-ce-que tu appelles "répertoire"?

Et comment fais-tu pour faire une "transposition" et un "collage"? Peux-tu me donner la réponse avec mes données que j'ai écrites dans la question??

Merci en attendant =)
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 7/06/2010 à 21:43
Re,

Un répertoire est un dossier en fait les deux classeurs se trouvent t'il au même niveau, c'est important pour le code.

la transposition est un collage spécial ou il faut cocher transposer c'est tout. les données en ligne sont copiées en colonne et inversement, mais dans ton cas avec un code VBA.

Pour faire simple, si les deux classeurs sont ouverts

Sub Macro3()

Range("A2:D2").Select
Selection.Copy
Windows("Nom du fichier.xls").Activate

'Soit tu identifies la feuille de réception
Sheets("Feuil1").Select
'soit tu donne sont numéro mais il faut supprimer une
'de ces deux lignes en gras
Sheets(1).Select

Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Re,

alors oui les deux classeurs se trouvent dans le même dossier =)
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
7 juin 2010 à 21:45
j'ai complété mon post précédent.

Si le classeur de réception est fermé, c'est plus complexe mais pas insurmontable parce qu'il faut donner le chemin d'accès
0
Partons du principe que le deuxième classeur est fermé, c'est plus sûr.....

en tout cas merci beaucoup pour ton travail, c'est vraiment sympa!
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 7/06/2010 à 23:26
Re,

Colle ce code dans un module et remplace toto en gras par le nom de ton fichier de réception sans mettre l'extension ou efface &".xls"
les données seront transposé sur la feuille1
si tu as plusieurs lignes à transposer, il faudra ajouter une boucle dans le code

Sub Macro3()
Dim nom As String
Application.ScreenUpdating = False
Range("A2:D2").Copy
nom = "toto" & ".xls"
On Error Resume Next
Workbooks(nom).Activate
If Err <> 0 Then
On Error Resume Next
Workbooks.Open (ThisWorkbook.Path & "\" & nom)
End If
Sheets("Feuil1").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Merci beaucoup Mike, t'es la bête haha.... A la proche! =) =) =)
0