Transfert sur une autre feuille ( EXCEL)

Résolu
alex -  
 alex -
Bonjour,

Je commence juste a travailler sur visual basic.Mon but est de copier un tableau sous forme de colonne (qui est dans "Feuil1")dans un autre tableau qui est lui est sous forme de ligne et dans une autre feuille(Feuil2).
En faisant des recherches je suis arrivé à créer se code mais le probléme c'est que je n'arrive pas a transféré les informations sur "Feuil2",seulement dans un autre tableau sur "Feuil1".
j'ai essayé de rajouter "worksheets("Feuil2")." devant range(cells... mais lorsque je compile j'ai l'erreur 1004 erreur défini par l'application ou par l'objet.

Je ne trouve pas la réponse donc si vous avez des propositions je vous écoute

merci d'avance.

Sub COPIDESDONNEES()
Dim copi() As Variant
Dim i As Byte
Dim a As Long, b As Long, c As Long, d As Long
Dim e As Long, f As Long, g As Long, h As Long

a = 1
c = 5

b = 6

e = 1
f = 6
g = 1
h = 10

For K = 1 To 2

For j = 1 To 3
copi = Range(Cells(a, j), Cells(c, j))

For i = 1 To UBound(copi, 1)
Next i

Range(Cells(e, f), Cells(g, h)) = WorksheetFunction.Transpose(copi)
e = e + 1
g = g + 1

Next j
a = a + b
c = c + b

Next K

Call terminer

End Sub

5 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Exemple type de l'équivalent de la fonction Transpose
    sous VBA.

    Sub Ex_Copie_Donnees()
    
        Dim Ws1 As Worksheet, Ws2 As Worksheet
        Dim BoucleL As Long, LimiteL As Long
        Dim BoucleC As Long, LimiteC As Long
        
        ' Désactive affichage pour meilleur performance
        Application.ScreenUpdating = False
        
        ' Prendre une main sur Feuil1 et Feuil2
        Set Ws1 = Sheets("Feuil1")
        Set Ws2 = Sheets("Feuil2")
        
        ' Définir les limites de la copiue
        LimiteL = Ws1.Range("A65536").End(xlUp).Row
        LimiteC = Ws1.Range("IV1").End(xlToLeft).Column
        
        ' Boucle sur les colonnes
        For BoucleC = 1 To LimiteC
            ' Boucle sur les lignes
            For BoucleL = 1 To LimiteL
                ' Copie d'une feuille à l'autre
                Ws2.Cells(BoucleC, BoucleL).Value = _
                        Ws1.Cells(BoucleL, BoucleC).Value
            Next BoucleL
        Next BoucleC
        
        ' Résactive affichage
        Application.ScreenUpdating = True
        
    End Sub
    '
    


    Cdt

    Lupin
    0
    1. alex
       
      merci bien Lupin, aprés quelque modif pour l'adapter a mon tableau tout marche trés bien.
      bonne soiré à toi et encor merci.

      alex
      0
    2. Utilisateur anonyme
       
      Bienvenue :-)
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    petit exemple sans boucle inutile; à adapter

    transposée de A1:D3 en feuille 2 à partir de F1

    T_copi = Sheets(1).Range("A1:D3").Value
    
    Sheets(2).Range("F1").Resize(4, 3) = Application.Transpose(T_copi)
    


    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    et voici la version scolaire

    Option Explicit 
    
    Sub transposer() 
    Dim lig_dep As Long, col_dep As Long, lig_fin As Long, col_fin As Long 
    Dim largeur As Long, hauteur As Long 
    Dim T_copi 
    Dim lig_cible As Long, col_cible As Long 
    Dim source As Range, cible As Range 
    
    'zone source 
    'départ 
    lig_dep = 1 
    col_dep = 1 
    'fin 
    lig_fin = 3 
    col_fin = 4 
    
    'cible 
    lig_cible = 1 
    col_cible = 6 
    
    
    With Sheets(1) 
    'collecte les valeurs 
    Set source = .Range(.Cells(lig_dep, col_dep), .Cells(lig_fin, col_fin)) 
    largeur = source.Columns.Count 
    hauteur = source.Rows.Count 
    
    T_copi = source.Value 
    End With 
    
    'restitue la transposée 
    Application.ScreenUpdating = False 
    Set cible = Sheets(2).Cells(lig_cible, col_cible).Resize(largeur, hauteur) 
    cible = Application.Transpose(T_copi) 
    
    End Sub 
    


    mais apparemment, Alex m'a snobé...

    Michel
    0
    1. alex
       
      Salut Michel
      Non je t'ai pas snobé mais je viens juste de voir ton message.
      Je commence juste donc il faut que sa reste facilement compréhensible lors de la lecture du code.
      Celui de lupin correspond mieux à la façon dont j'avais commencé mais merci bien de ton aide, je vais mieux regarder le tien parce qu'il y a des choses que je ne connais pas encore.

      Merci à vous deux pour vos réponses rapide, c'est sympa :-)

      alex
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Pas grave, mais n'oublie pas de rafraichir avant de répondre! :-)

    Il y a un Alex qui a fait un site/excel: c'est toi ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. alex
     
    A oui c'est vrai que je n'avais pas rafraichi, j'y penserais la prochaine fois.

    Et pour le site/Excel ce n'est pas moi.

    Passe une bonne journée Michel
    0