OVH Cloud OVH Cloud

Macro : un copié-collé sur prochaine colonne vide à droite

15 réponses
Avatar
NoraK
Bonjour à tous !

Le triste moment où mes maigres capacités Excel atteignent leurs limites est arrivé, alors je viens à vous, Experts, dans l'espoir que mon problème soit enfiiiin résolu !

Je vous explique :

Sur un classeur, j'aimerais copier un bout d'une certaine colonne qui ne variera pas (disons la B) de la feuille "Semaine S" pour la coller sur la feuille "Historique" du même classeur, mais à un endroit variable. La première semaine, je remplirai la colonne C par exemple, la deuxième, la colonne D, la troisième, la colonne E... J'aimerais donc coller les données à droite de la dernière colonne pleine afin de constituer un historique qui se remplira avec le temps.

En ajoutant à ça la contrainte du "collage spécial en valeur" pour que mes données restent exactes...

Auriez-vous s'il vous plait une idée d'un code qui me permettrait de créer cette macro ?


Merci :)

5 réponses

1 2
Avatar
norak
Le jeudi 11 Décembre 2014 à 16:36 par NoraK :
Bonjour à tous !

Le triste moment où mes maigres capacités Excel atteignent leurs
limites est arrivé, alors je viens à vous, Experts, dans l'espoir
que mon problème soit enfiiiin résolu !

Je vous explique :

Sur un classeur, j'aimerais copier un bout d'une certaine colonne qui ne
variera pas (disons la B) de la feuille "Semaine S" pour la coller
sur la feuille "Historique" du même classeur, mais à un
endroit variable. La première semaine, je remplirai la colonne C par
exemple, la deuxième, la colonne D, la troisième, la colonne E...
J'aimerais donc coller les données à droite de la
dernière colonne pleine afin de constituer un historique qui se remplira
avec le temps.

En ajoutant à ça la contrainte du "collage spécial en
valeur" pour que mes données restent exactes...

Auriez-vous s'il vous plait une idée d'un code qui me permettrait de
créer cette macro ?


Merci :)


Merci !!! C'est super, ça fonctionne parfaitement, merci merci merci :)
Avatar
norak
Le jeudi 11 Décembre 2014 à 16:36 par NoraK :
Bonjour à tous !

Le triste moment où mes maigres capacités Excel atteignent leurs
limites est arrivé, alors je viens à vous, Experts, dans l'espoir
que mon problème soit enfiiiin résolu !

Je vous explique :

Sur un classeur, j'aimerais copier un bout d'une certaine colonne qui ne
variera pas (disons la B) de la feuille "Semaine S" pour la coller
sur la feuille "Historique" du même classeur, mais à un
endroit variable. La première semaine, je remplirai la colonne C par
exemple, la deuxième, la colonne D, la troisième, la colonne E...
J'aimerais donc coller les données à droite de la
dernière colonne pleine afin de constituer un historique qui se remplira
avec le temps.

En ajoutant à ça la contrainte du "collage spécial en
valeur" pour que mes données restent exactes...

Auriez-vous s'il vous plait une idée d'un code qui me permettrait de
créer cette macro ?


Merci :)


Mhh, en fait, ça marche mais ça copie à partir de C, même si B est vide.

J'ai essayé de changer

Sub jj2()
Dim col As Long
Sheets("Semaine S").[b3:b23].Copy
col = 1
With Sheets("Les_Historiques")
On Error Resume Next
With .Range("c3", .Cells(23, .Columns.Count))
col = .Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column - 1
.Cells(1, col).PasteSpecial Paste:=xlPasteValues
End With
End With
End Sub

en

Sub jj2()
Dim col As Long
Sheets("Semaine S").[b3:b23].Copy
col = 1
With Sheets("Les_Historiques")
On Error Resume Next
With .Range("b3", .Cells(23, .Columns.Count))
col = .Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column - 1
.Cells(1, col).PasteSpecial Paste:=xlPasteValues
End With
End With
End Sub

C'est à dire modifier C en B dans le code, à tout hasard, et ça ne fonctionne plus, la colonne se copie bien en B3, mais ensuite, quand je répète l'opération, les colonnes ne viennent pas s'accoler à elle (c3,d3,e3..) mais écrase B3.

Quand je colle ton code d'origine, les semaines viennent bien les unes après les autres, mais ça commence de C.

:(
Avatar
Jacky
Re...
Regarde ici
http://cjoint.com/?DLptJj2X9kS
Si ce n'est pas cela explique ce qui ne va pas..

Ps: Ma souris et moi te remercie de répondre au-dessus des messages
--
Salutations
JJ


"norak" a écrit dans le message de news:

C'est à dire modifier C en B dans le code, à tout hasard, et ça ne fonctionne
plus, la colonne se copie bien en B3, mais ensuite, quand je répète l'opération,
les colonnes ne viennent pas s'accoler à elle (c3,d3,e3..) mais écrase B3.

Quand je colle ton code d'origine, les semaines viennent bien les unes après les
autres, mais ça commence de C.

:(
Avatar
Jacky
RE...
...C'est à dire modifier C en B dans le code


Cette macro commence le collage toujours en Colonne B de la feuille "Les_Historiques"
J'ai ajouter un message box (A supprimer après avoir testé). Il permet de comprendre le fonctionnement de la
macro
'----------------
Sub jj_2()
Dim col As Long
Application.ScreenUpdating = False
Sheets("Semaine S").[b3:b23].Copy
col = 2 ' colonne par défaut
With Sheets("Les_Historiques")
On Error Resume Next 'pour éviter un plantage si excel ne trouve pas dans la plage définie.
col = .Range("b3", .Cells(23, .Columns.Count)).Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1
MsgBox "Plage qui sera prise en compte pour calculer la dernière colonne occupée de la feuille
""Les_Historiques""" & _
vbLf & .Range("b3", .Cells(23, .Columns.Count)).Address & vbLf & _
vbLf & "Numéro de la prochaine colonne vide dans cette plage : " & col & _
vbLf & "Première cellule ou sera copié la plage B3:B23 de la feuille ""Semaine S"" : " & .Cells(3,
col).Address _
, , "Informations"
.Cells(3, col).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
'------------------
--
Salutations
JJ


"norak" a écrit dans le message de news:

Le jeudi 11 Décembre 2014 à 16:36 par NoraK :
Bonjour à tous !

Le triste moment où mes maigres capacités Excel atteignent leurs
limites est arrivé, alors je viens à vous, Experts, dans l'espoir
que mon problème soit enfiiiin résolu !

Je vous explique :

Sur un classeur, j'aimerais copier un bout d'une certaine colonne qui ne
variera pas (disons la B) de la feuille "Semaine S" pour la coller
sur la feuille "Historique" du même classeur, mais à un
endroit variable. La première semaine, je remplirai la colonne C par
exemple, la deuxième, la colonne D, la troisième, la colonne E...
J'aimerais donc coller les données à droite de la
dernière colonne pleine afin de constituer un historique qui se remplira
avec le temps.

En ajoutant à ça la contrainte du "collage spécial en
valeur" pour que mes données restent exactes...

Auriez-vous s'il vous plait une idée d'un code qui me permettrait de
créer cette macro ?


Merci :)


Mhh, en fait, ça marche mais ça copie à partir de C, même si B est vide.

J'ai essayé de changer

Sub jj2()
Dim col As Long
Sheets("Semaine S").[b3:b23].Copy
col = 1
With Sheets("Les_Historiques")
On Error Resume Next
With .Range("c3", .Cells(23, .Columns.Count))
col = .Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column - 1
.Cells(1, col).PasteSpecial Paste:=xlPasteValues
End With
End With
End Sub

en

Sub jj2()
Dim col As Long
Sheets("Semaine S").[b3:b23].Copy
col = 1
With Sheets("Les_Historiques")
On Error Resume Next
With .Range("b3", .Cells(23, .Columns.Count))
col = .Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column - 1
.Cells(1, col).PasteSpecial Paste:=xlPasteValues
End With
End With
End Sub

C'est à dire modifier C en B dans le code, à tout hasard, et ça ne fonctionne
plus, la colonne se copie bien en B3, mais ensuite, quand je répète l'opération,
les colonnes ne viennent pas s'accoler à elle (c3,d3,e3..) mais écrase B3.

Quand je colle ton code d'origine, les semaines viennent bien les unes après les
autres, mais ça commence de C.

:(
Avatar
norak
Le jeudi 11 Décembre 2014 à 16:36 par NoraK :
Bonjour à tous !

Le triste moment où mes maigres capacités Excel atteignent leurs
limites est arrivé, alors je viens à vous, Experts, dans l'espoir
que mon problème soit enfiiiin résolu !

Je vous explique :

Sur un classeur, j'aimerais copier un bout d'une certaine colonne qui ne
variera pas (disons la B) de la feuille "Semaine S" pour la coller
sur la feuille "Historique" du même classeur, mais à un
endroit variable. La première semaine, je remplirai la colonne C par
exemple, la deuxième, la colonne D, la troisième, la colonne E...
J'aimerais donc coller les données à droite de la
dernière colonne pleine afin de constituer un historique qui se remplira
avec le temps.

En ajoutant à ça la contrainte du "collage spécial en
valeur" pour que mes données restent exactes...

Auriez-vous s'il vous plait une idée d'un code qui me permettrait de
créer cette macro ?


Merci :)


C'est exactement ce qu'il me fallait, merci d'avoir pris le temps de m'aider, c'est très gentil de ta part.

Désolée pour les messages "en-dessous", je maîtrise ce forum autant que je maîtrise les macros...


Merci encore !
1 2