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

suppression de données

12 réponses
Avatar
Sunburn
Bonjour,
par macro, je voudrais supprimer des données spécifiques de mon classeur,
onglet par onglet.
mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
voilà ce que j'ai, MERCI de votre aide :
---
Sub FTS20()
'onglet 20_23
Sheets("20_23").Select
'effacement
Range("H9:I40,J42").Select
Selection.ClearContents
'on met la valeur NA en A4
Range("A4") = "NA"
End Sub
----

10 réponses

1 2
Avatar
Jacky
Bonsoir,

A priori, il n'y a pas de raison que cette macro telle qu'elle est écrite
ci-dessous ne fonctionne pas.
Ceci fait la même chose sans les sélections INUTILES
'--------------
Sub FTS20()
With Sheets("20_23")
'onglet 20_23
.Range("H9:I40,J42").ClearContents
'on met la valeur NA en A4
.Range("A4") = "NA"
End With
End Sub

'-----------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
Bonjour,
par macro, je voudrais supprimer des données spécifiques de mon classeur,
onglet par onglet.
mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
voilà ce que j'ai, MERCI de votre aide :
---
Sub FTS20()
'onglet 20_23
Sheets("20_23").Select
'effacement
Range("H9:I40,J42").Select
Selection.ClearContents
'on met la valeur NA en A4
Range("A4") = "NA"
End Sub
----



Avatar
FFO
Rebonjour à toi

Ton code en l'état fonctionne trés bien
Mais si tu l'utilises dans ton classeur pour lequel je t'ai fourni
différents codes à ma connaissance les feuilles sont vérouillées
Il serait donc bon d'inclure une procédure de déprotection en début et de
reprotection en fin comme je te l'ai indiqué :

Sub FTS20()
'onglet 20_23
Sheets("20_23").Select
Activesheet.Unprotect ("Mot de passe")
'effacement
Range("H9:I40,J42").Select
Selection.ClearContents
'on met la valeur NA en A4
Range("A4") = "NA"
Activesheet.Protect ("Mot de passe")
End Sub

Celà devrait mieux fonctionner sans doute
Dis moi !!!
Avatar
Sunburn
oui, ça fonctionne mieux comme cela.
Donc a priori, avec "with", il n'y a pas besoin que les onglets soit
visibles ?
Merci, ça va me simplifier mes codes.
YANN

"Jacky" a écrit :

Bonsoir,

A priori, il n'y a pas de raison que cette macro telle qu'elle est écrite
ci-dessous ne fonctionne pas.
Ceci fait la même chose sans les sélections INUTILES
'--------------
Sub FTS20()
With Sheets("20_23")
'onglet 20_23
.Range("H9:I40,J42").ClearContents
'on met la valeur NA en A4
.Range("A4") = "NA"
End With
End Sub

'-----------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
> Bonjour,
> par macro, je voudrais supprimer des données spécifiques de mon classeur,
> onglet par onglet.
> mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
> voilà ce que j'ai, MERCI de votre aide :
> ---
> Sub FTS20()
> 'onglet 20_23
> Sheets("20_23").Select
> 'effacement
> Range("H9:I40,J42").Select
> Selection.ClearContents
> 'on met la valeur NA en A4
> Range("A4") = "NA"
> End Sub
> ----
>





Avatar
Sunburn
jacky, lorsque j'ai des déplacements d'info, ça peut aussi marcher avec
"with" ??
Merci à toi, YANN
----
Sub FTS30()
'onglet 30_31
Sheets("30_31").Select
'deplacement
Range("H10:H29").Select
Selection.Copy
Range("F10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
'effacement
Range("E10:E29,H10:H29").Select
Selection.ClearContents
'on met la valeur NA en A4
Range("A4") = "NA"
-----

"Jacky" a écrit :

Bonsoir,

A priori, il n'y a pas de raison que cette macro telle qu'elle est écrite
ci-dessous ne fonctionne pas.
Ceci fait la même chose sans les sélections INUTILES
'--------------
Sub FTS20()
With Sheets("20_23")
'onglet 20_23
.Range("H9:I40,J42").ClearContents
'on met la valeur NA en A4
.Range("A4") = "NA"
End With
End Sub

'-----------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
> Bonjour,
> par macro, je voudrais supprimer des données spécifiques de mon classeur,
> onglet par onglet.
> mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
> voilà ce que j'ai, MERCI de votre aide :
> ---
> Sub FTS20()
> 'onglet 20_23
> Sheets("20_23").Select
> 'effacement
> Range("H9:I40,J42").Select
> Selection.ClearContents
> 'on met la valeur NA en A4
> Range("A4") = "NA"
> End Sub
> ----
>





Avatar
Jacky
Re...
Cachotier, a aucun moment tu ne mentionnes que tes onglets sont
cachés.;o))))
Ben non, ce n'est pas With qui autorise l'écriture sur les feuilles cachées
Mais c'est la méthode select qui demande que les feuilles soient visibles.
On aurait pu écrire
'--------------
Sheets("20_23") .Range("H9:I40,J42").ClearContents
Sheets("20_23") .Range("A4") = "NA"
'-----------
Sans problème
--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
oui, ça fonctionne mieux comme cela.
Donc a priori, avec "with", il n'y a pas besoin que les onglets soit
visibles ?
Merci, ça va me simplifier mes codes.
YANN

"Jacky" a écrit :

Bonsoir,

A priori, il n'y a pas de raison que cette macro telle qu'elle est écrite
ci-dessous ne fonctionne pas.
Ceci fait la même chose sans les sélections INUTILES
'--------------
Sub FTS20()
With Sheets("20_23")
'onglet 20_23
.Range("H9:I40,J42").ClearContents
'on met la valeur NA en A4
.Range("A4") = "NA"
End With
End Sub

'-----------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
> Bonjour,
> par macro, je voudrais supprimer des données spécifiques de mon
> classeur,
> onglet par onglet.
> mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
> voilà ce que j'ai, MERCI de votre aide :
> ---
> Sub FTS20()
> 'onglet 20_23
> Sheets("20_23").Select
> 'effacement
> Range("H9:I40,J42").Select
> Selection.ClearContents
> 'on met la valeur NA en A4
> Range("A4") = "NA"
> End Sub
> ----
>







Avatar
Sunburn
Ok, oui ta solution me va bien, c'est plus simple.
mais comment puis-je simplifier cela ?? :
merci.
yann
-----
'onglet 10_71
Sheets("10_71").Select
'deplacement
Range("K9:K33").Select
Selection.Copy
Range("H9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
'deplacement
Range("F38:F62").Select
Selection.Copy
Range("C38").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
'effacemen
Sheets("10_71").Range("I9:I33,K9:K33,O9:P33,T9:U33,J38:K62,O38:O62").ClearContents
Sheets("10_71").Range("A4") = "NA" 'on met la valeur NA en A4
-----


"Jacky" a écrit :

Re...
Cachotier, a aucun moment tu ne mentionnes que tes onglets sont
cachés.;o))))
Ben non, ce n'est pas With qui autorise l'écriture sur les feuilles cachées
Mais c'est la méthode select qui demande que les feuilles soient visibles.
On aurait pu écrire
'--------------
Sheets("20_23") .Range("H9:I40,J42").ClearContents
Sheets("20_23") .Range("A4") = "NA"
'-----------
Sans problème
--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
> oui, ça fonctionne mieux comme cela.
> Donc a priori, avec "with", il n'y a pas besoin que les onglets soit
> visibles ?
> Merci, ça va me simplifier mes codes.
> YANN
>
> "Jacky" a écrit :
>
>> Bonsoir,
>>
>> A priori, il n'y a pas de raison que cette macro telle qu'elle est écrite
>> ci-dessous ne fonctionne pas.
>> Ceci fait la même chose sans les sélections INUTILES
>> '--------------
>> Sub FTS20()
>> With Sheets("20_23")
>> 'onglet 20_23
>> .Range("H9:I40,J42").ClearContents
>> 'on met la valeur NA en A4
>> .Range("A4") = "NA"
>> End With
>> End Sub
>>
>> '-----------
>>
>> --
>> Salutations
>> JJ
>>
>>
>> "Sunburn" a écrit dans le message de
>> news:
>> > Bonjour,
>> > par macro, je voudrais supprimer des données spécifiques de mon
>> > classeur,
>> > onglet par onglet.
>> > mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
>> > voilà ce que j'ai, MERCI de votre aide :
>> > ---
>> > Sub FTS20()
>> > 'onglet 20_23
>> > Sheets("20_23").Select
>> > 'effacement
>> > Range("H9:I40,J42").Select
>> > Selection.ClearContents
>> > 'on met la valeur NA en A4
>> > Range("A4") = "NA"
>> > End Sub
>> > ----
>> >
>>
>>
>>





Avatar
Jacky
Re...
Ton code un simplifié
'--------------
Sub FTS30()
'onglet 30_31
With Sheets("30_31")
'deplacement
.[H10:H29].Copy
.[F10].PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.[E10:E29,H10:H29].ClearContents 'effacement
.[A4] = "NA" 'on met la valeur NA en A4
End With
End Sub
'------------------
--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
jacky, lorsque j'ai des déplacements d'info, ça peut aussi marcher avec
"with" ??
Merci à toi, YANN
----
Sub FTS30()
'onglet 30_31
Sheets("30_31").Select
'deplacement
Range("H10:H29").Select
Selection.Copy
Range("F10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
_
:úlse, Transpose:úlse
Application.CutCopyMode = False
'effacement
Range("E10:E29,H10:H29").Select
Selection.ClearContents
'on met la valeur NA en A4
Range("A4") = "NA"
-----

"Jacky" a écrit :

Bonsoir,

A priori, il n'y a pas de raison que cette macro telle qu'elle est écrite
ci-dessous ne fonctionne pas.
Ceci fait la même chose sans les sélections INUTILES
'--------------
Sub FTS20()
With Sheets("20_23")
'onglet 20_23
.Range("H9:I40,J42").ClearContents
'on met la valeur NA en A4
.Range("A4") = "NA"
End With
End Sub

'-----------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
> Bonjour,
> par macro, je voudrais supprimer des données spécifiques de mon
> classeur,
> onglet par onglet.
> mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
> voilà ce que j'ai, MERCI de votre aide :
> ---
> Sub FTS20()
> 'onglet 20_23
> Sheets("20_23").Select
> 'effacement
> Range("H9:I40,J42").Select
> Selection.ClearContents
> 'on met la valeur NA en A4
> Range("A4") = "NA"
> End Sub
> ----
>







Avatar
Jacky
Il faut toujours essayer de supprimer les "Select" , qui dans ce code sont
tout à fait inutile
'-------------------------

Sub jj()
'ceci**********************************
'Sheets("10_71").Select
'deplacement
'Range("K9:K33").Select
'Selection.Copy
'Devient******************************
With Sheets("10_71")
.[k9:k33].Copy ' note le point devant l'instruction
'ceci***********************************************************
'Range("H9").Select
'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
'SkipBlanks _
:úlse, Transpose:úlse
'Devient cela**************************************************
.[h9].PasteSpecial Paste:=xlPasteValues
'Application.CutCopyMode = False 'on supprime
'Et encore cela*********************
'Range("F38:F62").Select
' Selection.Copy
'Pour ceci***************************
.[F38:F62].Copy
'et on continue avec ceci*****
'Range("C38").Select
'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
'SkipBlanks _
:úlse, Transpose:úlse
'pour cela***********************
.[c38].PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False 'on ne touche pas
'effacement
.Range("I9:I33,K9:K33,O9:P33,T9:U33,J38:K62,O38:O62").ClearContents 'on
laisse
.Range("A4") = "NA" 'on met la valeur NA en A4 ***on laisse
End With
' Il faut bien faire attention au point devant les instructions qui signifie
'que l'instruction qui suit concerne la feuille dont le nom est dans le With
du
'départ.(Ici 10_71)

'-------------------------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
Ok, oui ta solution me va bien, c'est plus simple.
mais comment puis-je simplifier cela ?? :
merci.
yann
-----
'onglet 10_71
Sheets("10_71").Select
'deplacement
Range("K9:K33").Select
Selection.Copy
Range("H9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
_
:úlse, Transpose:úlse
Application.CutCopyMode = False
'deplacement
Range("F38:F62").Select
Selection.Copy
Range("C38").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
_
:úlse, Transpose:úlse
Application.CutCopyMode = False
'effacement
Sheets("10_71").Range("I9:I33,K9:K33,O9:P33,T9:U33,J38:K62,O38:O62").ClearContents
Sheets("10_71").Range("A4") = "NA" 'on met la valeur NA en A4
-----



Avatar
Sunburn
Merci Jacky, c'est impecable, ça me simplifie mon code, ça sera sûrement plus
rapide à l'execution.
Merci.
YANN

"Jacky" a écrit :

Re...
Ton code un simplifié
'--------------
Sub FTS30()
'onglet 30_31
With Sheets("30_31")
'deplacement
.[H10:H29].Copy
.[F10].PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.[E10:E29,H10:H29].ClearContents 'effacement
.[A4] = "NA" 'on met la valeur NA en A4
End With
End Sub
'------------------
--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
> jacky, lorsque j'ai des déplacements d'info, ça peut aussi marcher avec
> "with" ??
> Merci à toi, YANN
> ----
> Sub FTS30()
> 'onglet 30_31
> Sheets("30_31").Select
> 'deplacement
> Range("H10:H29").Select
> Selection.Copy
> Range("F10").Select
> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
> _
> :úlse, Transpose:úlse
> Application.CutCopyMode = False
> 'effacement
> Range("E10:E29,H10:H29").Select
> Selection.ClearContents
> 'on met la valeur NA en A4
> Range("A4") = "NA"
> -----
>
> "Jacky" a écrit :
>
>> Bonsoir,
>>
>> A priori, il n'y a pas de raison que cette macro telle qu'elle est écrite
>> ci-dessous ne fonctionne pas.
>> Ceci fait la même chose sans les sélections INUTILES
>> '--------------
>> Sub FTS20()
>> With Sheets("20_23")
>> 'onglet 20_23
>> .Range("H9:I40,J42").ClearContents
>> 'on met la valeur NA en A4
>> .Range("A4") = "NA"
>> End With
>> End Sub
>>
>> '-----------
>>
>> --
>> Salutations
>> JJ
>>
>>
>> "Sunburn" a écrit dans le message de
>> news:
>> > Bonjour,
>> > par macro, je voudrais supprimer des données spécifiques de mon
>> > classeur,
>> > onglet par onglet.
>> > mais ce que j'ai construit plante, et je ne comprend pas pourquoi ?
>> > voilà ce que j'ai, MERCI de votre aide :
>> > ---
>> > Sub FTS20()
>> > 'onglet 20_23
>> > Sheets("20_23").Select
>> > 'effacement
>> > Range("H9:I40,J42").Select
>> > Selection.ClearContents
>> > 'on met la valeur NA en A4
>> > Range("A4") = "NA"
>> > End Sub
>> > ----
>> >
>>
>>
>>





Avatar
Sunburn
Re,
encore moi Jacky
au fait, si je veux appliquer les meme choses à plusieurs onglets, je peux
mettre :
With Sheets("30_31";"30_41")
par exemple ??
Merci.
Yann

"Jacky" a écrit :

Re...
Ton code un simplifié
'--------------
Sub FTS30()
'onglet 30_31
With Sheets("30_31")
'deplacement
.[H10:H29].Copy
.[F10].PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.[E10:E29,H10:H29].ClearContents 'effacement
.[A4] = "NA" 'on met la valeur NA en A4
End With
End Sub
'------------------
--
Salutations
JJ


1 2