Copier /coller tableau de taille variable

Résolu
Bonsoir
j'ai "piqué" ce code sur le net , je l'ai adapté comme tel : il permet de copier le tableau de la feuille A puis de le coller sur la feuille B à la suite du collage précédent. Seulement le collage se fait sur la derniére ligne vide .
Je voudrais le modifier pour un collage sur la derniére colonne vide.
Sub Coller_tab()
Application.ScreenUpdating = False
Dim E
Dim WsS As Worksheet, WsC As Worksheet
Dim i As Integer
Dim LigneAjout As Long
Dim colAjout As Long

E = Array("A")
Set WsC = Worksheets("B")
For i = 0 To UBound(E)
Set WsS = Worksheets(E(i))
LigneAjout = Application.Max(0, WsC.Range("A" & Rows.Count).End(xlUp).Row + 1)
Dim DernCol As Integer
DernCol = WsC.Range("A4").End(xlToRight).Column
MsgBox WsC.Range("A" & Rows.Count).End(xlUp).Row + 1
MsgBox WsC.Range("A1").End(xlToRight).Column
WsS.Range("$B$5:$K$18").Copy
With WsC.Range("A" & LigneAjout)
.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
End With
Next i
Set WsC = Nothing: Set WsS = Nothing

Worksheets("B").Range("A1").Select
Application.ScreenUpdating = True
End Sub


Merci d'avance de votre aide

7 réponses

  1. C'est tout bon .
    Reste à adapter tout ceci dans le projet.
    Grand merci f894009
    1. Oui oui!!!!!.... de retour
      Finalement en revoyant mon projet , la plage à copier sera fixe. Du coup le probléme de la variabilité ne se pose plus.
      Mais par contre certaines cellules du tableau à copier sont vides notamment sur la ligne A et cela améne un probléme à ce niveau
      DernCol = WsC.Range("A4").End(xlToRight).Column + 1
      du fait que l'instruction cherche la premiére cellulke vide.
      Comment contourner ce probléme?
      1. Re,
        derniere ligne/colonne utilisée de la feuille
        derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
        dercol = Cells.Find("*", , , , xlByColumns, xlPrevious).Column


        pour colonne d'une ligne ici 4
        DernCol = Cells(4, Columns.Count).End(xlToLeft).Column
    2. Re,
      Z'etes toujours a l'ecoute ???

      la plage a copier commence toujours en B5 ??
      cette plage est variable en ligne et colonne ??
      1. Re.

        Mieux vaut un fichier que de se perdre en explications.
        En fait je voudrait un résultat comme sur la feuille1 . ( tableau collé sur les colonnes)

        https://www.cjoint.com/c/FKzhH6caT0A
        merci
        1. Re,
          Ok, mais tableau B incomplet, normale ou pas ?
          Ou B c'est actuellement
          Mais la question plage variable reste d'actualite

          Suite:

          Fichier modifie pour copie plage fixe
          https://www.cjoint.com/c/FKzh6LSWTJf
        2. "mais tableau B incomplet, normale ou pas ?"
          -en clickant sur le bouton on peut rajouter autant de tableaux que l'on souhaite à la suite.
          c'est la philosophie meme du code. Il faut que ça reste.

          "Mais la question plage variable reste d'actualite"
          -oui dans l'exemple, la plage du tableau est fixe
          WsS.Range("$B$5:$K$18").Copy

          mais dans mon projet elle est variable.
        3. @julia NamorRe,
          j'ai mis votre fichier copie plage fixe. Je dois m'absenter pour le moment. Si a mon retour, personne n'a pris la suite, je vous ferai la copie variable
      2. Bonjour f894009

        je voudrais effectuer effectivement plusieurs copies .
        En fait le code fait exactement ce que je voudrais juste qu'il me faudrait:

        Copier à partir de la COLONNE de la première cellule vide LIGNE A.

        au lieu de

        copier à partir de la ligne de la première cellule vide colonne A.
        Merci de votre aide
        1. Re,

          Copier à partir de la COLONNE de la première cellule vide LIGNE A.
          Ca faut l'expliquer car pas sur que ca existe
      3. Oup'ss!!!désolée pour mes explications de "fin de journée"
        en fait la copie se fera à partir de la derniére cellule vide de la ligne A
        Merci de votre aide f894009
        1. Bonjour,

          Maintenant,
          Copier /coller tableau de taille variable
          Vous avez une plage fixe:
           WsS.Range("$B$5:$K$18").Copy
          !!!!!
          Si vous avez une seule copie pas besoin de e=Array.. et for next
          Alors ?????
      4. Bonjour
        La copie se fait à partir de la ligne de la première cellule vide colonne À.
        Et vous, vous voulez quoi?? Parceque la dernière colonne vide ça va pas le faire!!