Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 je sèche toujours sur ma copie de colonnes

blackjack

XLDnaute Occasionnel
Bonjour,
je suis vraiment à la peine avec mon code
La copie à la suite des 4 colonnes de L à O fonctionne très bien mais ce que je n'arrive pas à faire (inutile de vous dire le nombre d'essais ...) c'est 2 choses :

- ne pas copier les 3 premières lignes (en effet les éventuelles annotations présentes de la ligne 1 à la ligne 3 ne doivent pas être copiées)
-et que dans les nouvelles colonnes ainsi créées, n'apparaissent pas le contenu des colonnes L et M mais que les formules présentes en N et O soient conservées.

C'est un vrai casse tête, du moins pour moi ...
Merci du coup de main ,
Bonne journée
 

Pièces jointes

  • Copie de congés test.xlsm
    29.8 KB · Affichages: 8

job75

XLDnaute Barbatruc
Bonjour blackjack,

Vous pouvez affecter au bouton cette macro :
VB:
Sub Colonnes_Sup()
Application.ScreenUpdating = False
[L:O].Copy [P1]
[P1:S3] = ""
Range("P5:Q" & Rows.Count) = ""
End Sub
A+
 

blackjack

XLDnaute Occasionnel
Merci Job75
c'est parfait sauf que cela s'arrete à une seule copie, ce qu'il me faudrait c'est qu'a chaque lancement de macro, une nouvelle série de colonnes se copie à la suite
en tout cas merci encore
je sais j'abuse mais pourriez vous m'expliquer le code ?
 

job75

XLDnaute Barbatruc
Bonjour blackjack, le forum,

Je trouve que le code du post #2 n'a guère besoin d'explications, il est évident.
ce qu'il me faudrait c'est qu'a chaque lancement de macro, une nouvelle série de colonnes se copie à la suite
Vous voulez donc toujours copier les 4 dernières colonnes, voici le code :
VB:
Sub Colonnes_Sup()
Dim dercol As Integer
dercol = Cells(4, Columns.Count).End(xlToLeft).Column
If dercol < 4 Then Exit Sub 'sécurité
Application.ScreenUpdating = False
With Columns(dercol - 3).Resize(, 4) 'correspond à L:O (4 dernières colonnes)
    .Copy .Cells(1, 5) 'correspond à P1
    .Cells(1, 5).Resize(3, 4) = "" 'correspond à P1:S3
    .Cells(5, 5).Resize(Rows.Count - 4, 2) = "" 'correspond à P5:Q1048576
End With
End Sub
Il est moins évident, pour comprendre faites des recherches sur les mots Cells - Columns - Resize - End(xlToLeft).

Bonne journée.
 

blackjack

XLDnaute Occasionnel
Merci Job75
Ce code est parfait
Je me forme en consultant effectivement tout ce qui se rapproche des mots cells columns etc.
Ce qui me manque le plus c'est la syntaxe
En tout cas je vais décortiquer le code et me faire des exemples
Bonne journée
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…