Macro - copier/collage spéc. - résultat nouvelle colonne
Bonjour,
Je suis nouveau sur ce site.
voici :
Dans mon fichier Excel, j'ai 2 onglets, soit : Base et Sommaire
Dans l'onglet Base, les données sont inscrites dans la colonne B (entre les lignes 10 à 50) et sont modifiées à chaque semaine.
Dans l'onglet Sommaire, j'aimerais qu'une macro effectue un "copier-collage spécial" (sur demande) de la colonne B10 à B50 de l'onglet Base. Cependant, j'aimerais que cette macro utilise toujours une nouvelle colonne pour chaque résultat de la macro (bref, dans l'onglet Sommaire, les résultats seraient indiqués à partir de la colonne B et suivante - par exemple, semaine 1, semaine 2, semaine 3...).
Je n'ai aucune idée comment m'y prendre . Auriez-vous une idée-solution ?
Merci beaucoup pour votre aide !!
Bonjour et bienvenue
Teste ce code :
Sub copie()
Dim dercol As Integer
With Sheets("Sommaire")
.Activate
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column + 1
.Cells(1, dercol) = "Semaine " & dercol - 1
Sheets("Base").Range("B10:B50").Copy
.Cells(2, dercol).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
End SubAmicalement
Nad
Bonjour Nad,
Merci beaucoup pour ton aide
Tu trouveras ci-joint une copie du document Excel avec les macros.
J'ai tenté de modifier certains éléments afin d'obtenir le résultat ci-dessous...mais cela ne fonctionne pas :
- Copier/coller les données de feuille base à sommaire : ok macro fonctionne super
- Est-ce qu'il existe une formule que l'on pourrait ajouter dans la macro afin de limiter la macro à un certain nombre de colonne...c'est-à-dire : dans la feuille Base, j'indique à la cellule A3 un nombre de semaine (par exemple 26 ou 52). Est-ce qu'il y aurait moyen de limiter la macro "copie-colle" au nombre max de colonne indiquée dans cette cellule (si indique 26...alors il y aurait possibilité d'utiliser la macro 26 fois, idem pour 52 ...) ? J'ai tenté d'utiliser la ligne suivante (limiter à 52) mais sans succès : "If Selection.Column > 53 Then Exit Sub".
- J'ai créé un bouton "nouvelle année" avec la macro "clear". L'objectif étant de recommencer à zéro l'année suivante. Le problème est que la macro "copie-colle" ne recommence pas à la première colonne....elle continue plutôt à l'endroit où elle était rendue. Est-ce qu'il y a un moyen de faire recommencer la macro au début si on clique sur le bouton "nouvelle année " ?
- Dernière question : j'ai tenté de modifier la macro : "dercol = Range("B1").SpecialCells(xlCellTypeLastCell).Column + 1" en indiquant C1 au lieu de B1. Je désirais que la macro débute à la colonne C...mais ça ne fonctionne pas. Est-ce que je dois modifier une autre donnée dans la formule pour que cela fonctionne ?
Merci encore mille fois pour ton aide !!
Bonne journée !
Bonsoir
Teste ce code :
Sub copie()
Application.ScreenUpdating = False
Dim nbcol As Integer
With Sheets("Sommaire")
.Activate
nbcol = Sheets("Base").Range("A3").Value + 2
For i = 3 To nbcol
.Cells(9, i) = "Semaine " & i - 2
' Sélectionne les données à copier
Sheets("Base").Range("B10:B50").Copy
' Colle les données
.Cells(10, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Colle le format
.Cells(10, i).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Next
End With
'Retour à la page "Base"
Sheets("Base").Select
End SubEt pour effacer :
Sub NouvelleAnnee()
Sheets("Sommaire").Columns("C:BE").Delete Shift:=xlToLeft
End SubAmicalement
Nad
Bonjour Nad,
Encore une fois....merci !
Tout fonctionne très bien. Le respect des colonnes selon le chiffre indiqué (52 ou 26).
La macro recommence au début dès que l'on clique sur nouvelles années.
Le seul point qui ne fonctionne plus est la fonction copier-coller colonne par colonne. Lorsque j'applique la macro, la colonne B10-B50 de l'onglet Base est copiée-collée dans toutes les 52 ou 26 colonnes de l'onglet Sommaire (selon le chiffre indiqué). Auparavant (première macro), cela fonctionnait colonne par colonne.
Est-ce qu'il y a une modification qu'on peut apporter à la dernière macro pour recorriger le tout, soit que la macro copie-colle colonne par colonne jusqu'à l'atteinte de la colonne 52 ou 26 (selon le chiffre indiqué dans la cellule A3 de l'onglet Base) ?
Merci encore !!
Robin