Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro Copie de Valeur seulement

32 réponses
Avatar
Billy
Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!

--
Billy

10 réponses

1 2 3 4
Avatar
garnote
Salut Billy,

Est-ce que ceci te convient ?
Sub Au_Suivant()
[a14:s14] = [a13:s13].Value
End Sub

Serge

"Billy" a écrit dans le message de news:
Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!

--
Billy


Avatar
cousinhub
Bonjour, rajoute en début ceci :
.Value = .Value

With [a13:S13]
.Value = .Value

.Copy


Bonne journée

Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!



Avatar
garnote
Et si tu veux faire disparaître le contenu de la plage [a13:s13] :

Sub Au_Suivant()
[a14:s14] = [a13:s13].Value
[a13:s13].ClearContents
End Sub

Serge



"garnote" a écrit dans le message de news:
Salut Billy,

Est-ce que ceci te convient ?
Sub Au_Suivant()
[a14:s14] = [a13:s13].Value
End Sub

Serge

"Billy" a écrit dans le message de news:
Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!

--
Billy






Avatar
jps
peut-être en ajoutant ceci, billy

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With
Range("A14:S14") = Range("A14:S14")
End Sub

jps

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

Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou
copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!

--
Billy


Avatar
Billy
Bonjour,

J'ai besoin de garder la procédure " .Insert Shift:=xlDown" car je fais mes
entrées de données toujours sur la ligne 13. Et l'idée est que les données
descendent une ligne plus bas à chaque nouvelle entrée. C'est pourquoi que
j'aimerais adapter cette cette macro pour que ce soit uniquement les valeurs
et non les formules qui se copient sur la ligne plus bas.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

J'y arrive pas du tout. J'essaie d'ajouter à la ligne .Copy :
.Copy.Value

...mais ca fonctionne pas.

Un gros merci encore! Vous êtes tellement gentils de m'aider!


--
Billy



Et si tu veux faire disparaître le contenu de la plage [a13:s13] :

Sub Au_Suivant()
[a14:s14] = [a13:s13].Value
[a13:s13].ClearContents
End Sub

Serge



"garnote" a écrit dans le message de news:
Salut Billy,

Est-ce que ceci te convient ?
Sub Au_Suivant()
[a14:s14] = [a13:s13].Value
End Sub

Serge

"Billy" a écrit dans le message de news:
Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!

--
Billy











Avatar
Billy
Bonjour,

Ca fonctionne pas. Ce qui se passe de facon plus détaillée, c'est que de A13
à C13, j'ai des formules qui me permettent de rapporter des données de
cellules cibles. De D13 à S13, j'ai des données que j'entre manuellement.

Sur la ligne 13, je fais toujours l'entrée de nouvelles données à l'aide de
la macro établit.

Donc, mon souci est de pouvoir garder historiquement mes entrées de données
"en valeur" seulement" en les décalant vers le bas, et pour les cellules A13
à C13, toujours garder leur formules.

Avant, j'ai 2 macros. La première :

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

et la seconde :

Private Sub Worksheet_Change(ByVal Target As Range)

[A13:c13] = [A11:c11].Value

End Sub

Mais quand je protège mon fichier, une boîte de dialogue s'affiche Erreur
d'exécution 1004' Espace Pile insuffisant.

Donc voilà pourquoi je cherche une facon de faire pour éliminer cette 2e
macro qui bousille mon fichier. Si je pourrais l'intégrer à ma première macro
ca éliminerait peut-être le problème.

Merci :)
--
Billy



peut-être en ajoutant ceci, billy

Sub ausuivant()

With [a13:S13]
..Copy
..Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With
Range("A14:S14") = Range("A14:S14")
End Sub

jps

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

Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou
copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!

--
Billy






Avatar
garnote
Peut-être ainsi :

Sub Copie()
Rows("14:14").Insert Shift:=xlDown
Rows("13:13").Copy
Rows("14:14").PasteSpecial Paste:=xlPasteValues
Rows("13:13").ClearContents 'Si tu veux
Application.CutCopyMode = False
End Sub

Serge



"Billy" a écrit dans le message de news:
Bonjour,

J'ai besoin de garder la procédure " .Insert Shift:=xlDown" car je fais mes
entrées de données toujours sur la ligne 13. Et l'idée est que les données
descendent une ligne plus bas à chaque nouvelle entrée. C'est pourquoi que
j'aimerais adapter cette cette macro pour que ce soit uniquement les valeurs
et non les formules qui se copient sur la ligne plus bas.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

J'y arrive pas du tout. J'essaie d'ajouter à la ligne .Copy :
.Copy.Value

...mais ca fonctionne pas.

Un gros merci encore! Vous êtes tellement gentils de m'aider!


--
Billy



Et si tu veux faire disparaître le contenu de la plage [a13:s13] :

Sub Au_Suivant()
[a14:s14] = [a13:s13].Value
[a13:s13].ClearContents
End Sub

Serge



"garnote" a écrit dans le message de news:
Salut Billy,

Est-ce que ceci te convient ?
Sub Au_Suivant()
[a14:s14] = [a13:s13].Value
End Sub

Serge

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

Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!

--
Billy













Avatar
cousinhub
Bonjour, rajoute à la fin de ton code :
[a14:S14].Value = [a14:S14].Value
Bonne journée

Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!



Avatar
jps
oops, cousinhub, c'est ce que j'avais susurré à l'oreille de Billy mais
j'aurais du tester avant : la ligne que nous suggérions fait que les valeurs
comprises dans A14:S14 disparaissent (chez moi, tout du moins)
si Billy sait où sont ses formules (et elle doit le savoir) il faut qu'elle
décline une à une les cellules avec formules, par ex :

Range("C14, G14,I14,L14,O14,S14") = Range("C14, G14,I14,L14,O14,S14")

par contre je suis preneur d'une explication pour ce qui se passe quand on
donne toute la plage...!!!
jps

"cousinhub" a écrit dans le message de news:
O%
Bonjour, rajoute à la fin de ton code :
[a14:S14].Value = [a14:S14].Value
Bonne journée

Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou
copier devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois,
j'essaie de l'adapter pour copier uniquement les valeurs et non les
formules sur cette ligne plus bas. Étant de niveau débutante, j'éprouve
de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!





Avatar
Billy
Bonjour,

Ca fonctionne pas. Il me met en erreur la ligne
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents

Peut-être que je ne place pas la procédure au bon endroit. Où devrais-je
placer précisément : [a14:S14].Value = [a14:S14].Value

Je comprends pas non plus cette procédure ... Est-ce que ce ne devrais pas
être [a14:s14].Value = [a13:S13].value ?

Merci de ta belle patience avec moi qui est si débutante! :)

--
Billy



Bonjour, rajoute à la fin de ton code :
[a14:S14].Value = [a14:S14].Value
Bonne journée

Bonjour,

Dans une feuille, j'ai la macro suivante qui me permet de décaler (ou copier
devrais-je dire) ma ligne 13 une ligne vers le bas.Toutefois, j'essaie de
l'adapter pour copier uniquement les valeurs et non les formules sur cette
ligne plus bas. Étant de niveau débutante, j'éprouve de la difficulté.

Sub ausuivant()

With [a13:S13]
.Copy
.Insert Shift:=xlDown
[a13:S13].SpecialCells(xlCellTypeConstants, 23).ClearContents
End With

End Sub

Merci beaucoup de votre aide!






1 2 3 4