Copier /coller tableau de taille variable

Résolu/Fermé
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 24 nov. 2016 à 20:02
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 25 nov. 2016 à 15:50
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



A voir également:

7 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
24 nov. 2016 à 20:37
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
24 nov. 2016 à 21:01
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
Modifié par f894009 le 25/11/2016 à 07:28
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
25 nov. 2016 à 07:56
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
25 nov. 2016 à 08:14
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
25 nov. 2016 à 08:36
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
Modifié par f894009 le 25/11/2016 à 08:58
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
25 nov. 2016 à 08:59
"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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702 > julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024
25 nov. 2016 à 09:09
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
25 nov. 2016 à 12:15
Re,
Z'etes toujours a l'ecoute ???

la plage a copier commence toujours en B5 ??
cette plage est variable en ligne et colonne ??
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
Modifié par julia Namor le 25/11/2016 à 14:22
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
Modifié par f894009 le 25/11/2016 à 14:53
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
25 nov. 2016 à 15:50
C'est tout bon .
Reste à adapter tout ceci dans le projet.
Grand merci f894009
0