OVH Cloud OVH Cloud

historisation de cellules

19 réponses
Avatar
clyver
Quand je change de semaine j'aimerai figer les semaines pr=E9cendentes
afin d'en garder l'historique ;
car chaque semaine je modifie les cellules

http://cjoint.com/?bCmUxALFnT


Merci Franck

10 réponses

1 2
Avatar
notta.lionel
Bonjour Franck,

Tu peux essayer ceci :

Sub Fige()
'
Dim NoSemaine As Byte
Dim Colonne As Byte
Dim Plage As Range
'
Application.ScreenUpdating = False
NoSemaine = Range("B11")
Colonne = (NoSemaine - 1) * 3 + 2
Set Plage = Range(Cells(3, Colonne), Cells(6, Colonne + 2))
Plage.Copy
Plage.PasteSpecial Paste:=xlValues
Range("B14:D17").ClearContents
Range("A1").Select
With Application
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub

Amicalement
Lionel


"clyver" a écrit dans le message de
news:
Quand je change de semaine j'aimerai figer les semaines précendentes
afin d'en garder l'historique ;
car chaque semaine je modifie les cellules

http://cjoint.com/?bCmUxALFnT


Merci Franck
Avatar
JLuc
*Bonjour clyver*,
J'ai fais avec les donnees de ton tableau, si different, adapte

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$11" Then
Range("B14:D17").Copy
Range(Cells(3, 2).Offset(0, Range("B11") - 2), Cells(3, 2).Offset(3,
((Range("B11") - 1) * 3) - 1)).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Application.CutCopyMode = False
Range("B14:D17").ClearContents
Range("B14").Select
End If
End Sub

Attention de ne pas revenir en arriere dans le choix de la semaine !
Ce qui serai bien, c'est d'automatiser le numero de la semaine a
l'ouverture du classeur

Devrait convenir, dis nous :'-)
Quand je change de semaine j'aimerai figer les semaines précendentes
afin d'en garder l'historique ;
car chaque semaine je modifie les cellules

http://cjoint.com/?bCmUxALFnT


Merci Franck



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
clyver
je n'arrive pas a mettre en place cette VBA

Peux tu le mettre en oeuvre?

Merci franck
Avatar
JLuc
*Bonjour clyver*,
C'est du code a mettre dans la feuille :
http://cjoint.com/?bCpr5qEghh

Devrait convenir, dis nous :'-)
je n'arrive pas a mettre en place cette VBA

Peux tu le mettre en oeuvre?

Merci franck



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
clyver
ça bug pour la semaine N°3

J'ai peu etre pas tout compris...

C'est pas LoL

Franck.
Avatar
JLuc
*Bonjour clyver*,
Exact, j'avais pas tester plus loin que deux.
C'est dans les Offset que ca deconne, je recommence et je te tiens au
courrant

ça bug pour la semaine N°3

J'ai peu etre pas tout compris...

C'est pas LoL

Franck.



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
JLuc
*Bonjour clyver*,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$11" Then
Range("B14:D17").Copy
Range(Cells(3, 2).Offset(0, (Range("B11") - 2) * 3), Cells(3,
2).Offset(3, ((Range("B11") - 2) * 3) + 2)).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Application.CutCopyMode = False
Range("B14:D17").ClearContents
Range("B14").Select
End If
End Sub

*Attention aux retour a la ligne intempestif*

Devrait mieux convenir, dis nous :'-)
ça bug pour la semaine N°3

J'ai peu etre pas tout compris...

C'est pas LoL

Franck.



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
clyver
merci pour votre aide je vais essayer de le mettre en place sur mon
fichier réel. on verra ca Lundi matin.

Merci A vous passé un bon Week-End Franck
Avatar
clyver
peux tu me dire comment faire pour faire :

Feuille1 => ma source celle qui sera copié sur la feuille 2

Feuille 2 => copie (destination de la feuille 1)

PS : peux ton donner un nom au cellule (B14:D17) qui seront copier sur
la feuille 2 ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$11" Then
Range("B14:D17").Copy
Range(Cells(3, 2).Offset(0, (Range("B11") - 2) * 3), Cells(3,
2).Offset(3, ((Range("B11") - 2) * 3) + 2)).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Application.CutCopyMode = False
Range("B14:D17").ClearContents
Range("B14").Select
End If
End Sub

VBA marche trs bien mais sur la meme feuille du classeur.


Merci franck
Avatar
JLuc
clyver avait soumis l'idée :
peux tu me dire comment faire pour faire :

Feuille1 => ma source celle qui sera copié sur la feuille 2
C'est la feuille active qui, quand une de ses valeur chage, declenche

la procedure


Feuille 2 => copie (destination de la feuille 1)
**voir plus bas


PS : peux ton donner un nom au cellule (B14:D17) qui seront copier sur
la feuille 2 ?
Oui, par exemple "Plage"



Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$11" Then
Range("B14:D17").Copy
Range("Plage").Copy


**
juste avant le range, tu mets :
/Sheets("Feuille2")/.Range(....
Range(Cells(3, 2).Offset(0, (Range("B11") - 2) * 3), Cells(3,
2).Offset(3, ((Range("B11") - 2) * 3) + 2)).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Application.CutCopyMode = False
Range("B14:D17").ClearContents
Range("Plage").ClearContents


Range("B14").Select
End If
End Sub

VBA marche trs bien mais sur la meme feuille du classeur.
Depuis le debut, c'est sur la meme feuille ;-)




Merci franck



--
JLuc

1 2