Macro copier-coller excel

Résolu
jéjé -  
 jéjé -
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 =)

3 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. jéjé
       
      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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. jéjé
       
      Re,

      alors oui les deux classeurs se trouvent dans le même dossier =)
      0
    2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      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
    3. jéjé
       
      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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. jéjé
       
      Merci beaucoup Mike, t'es la bête haha.... A la proche! =) =) =)
      0