Copier /coller tableau de taille variable [Résolu/Fermé]

Signaler
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
-
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
-
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

Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
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!!
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
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
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
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 ?????
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
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
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Re,

Copier à partir de la COLONNE de la première cellule vide LIGNE A.
Ca faut l'expliquer car pas sur que ca existe
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
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
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
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
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
"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.
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481 >
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020

Re,
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
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Re,
Z'etes toujours a l'ecoute ???

la plage a copier commence toujours en B5 ??
cette plage est variable en ligne et colonne ??
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
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?
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
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
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
C'est tout bon .
Reste à adapter tout ceci dans le projet.
Grand merci f894009