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. 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!!
    0
    1. 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
      0
      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 ?????
        0
    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
      0
      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
        0
    3. 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
      0
      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
        0
      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.
        0
      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
        0
    4. Re,
      Z'etes toujours a l'ecoute ???

      la plage a copier commence toujours en B5 ??
      cette plage est variable en ligne et colonne ??
      0
      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?
        0
        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
          0
      2. C'est tout bon .
        Reste à adapter tout ceci dans le projet.
        Grand merci f894009
        0