Bonjour,
comment puis-je indiquer plusieurs onglets pour ce code :
with sheets("30_31","30_41") est-il correcte ??
-----
> 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
-----
Merci.
YANN
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FFO
Salut à toi
Il faut mettre :
For i = 1 To Sheets.Count If "30_31,30_41" Like "*" & Sheets(i).Name & "*" Then With Sheets(i) '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 If Next
Celà devrait te convenir Dis moi !!!
Salut à toi
Il faut mettre :
For i = 1 To Sheets.Count
If "30_31,30_41" Like "*" & Sheets(i).Name & "*" Then
With Sheets(i)
'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 If
Next
For i = 1 To Sheets.Count If "30_31,30_41" Like "*" & Sheets(i).Name & "*" Then With Sheets(i) '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 If Next
Celà devrait te convenir Dis moi !!!
Jacky
Re... Voir message précèdent
-- Salutations JJ
"Sunburn" a écrit dans le message de news:
Bonjour, comment puis-je indiquer plusieurs onglets pour ce code : with sheets("30_31","30_41") est-il correcte ?? -----
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
----- Merci. YANN
Re...
Voir message précèdent
--
Salutations
JJ
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news: B2762DEB-7AC7-4677-8592-EBFB9CE97EFA@microsoft.com...
Bonjour,
comment puis-je indiquer plusieurs onglets pour ce code :
with sheets("30_31","30_41") est-il correcte ??
-----
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
Bonjour, comment puis-je indiquer plusieurs onglets pour ce code : with sheets("30_31","30_41") est-il correcte ?? -----
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
----- Merci. YANN
Sunburn
re, en fait, le nom de l'onglet n'a pas de relation avec une suite logique, donc je vais peut etre opter pour la solution de Corto, qui a première vu, je trouve moins complexe. en fait, j'ai 4 et uniquement 4 onglets pour lesquels je veux ce traitement. mais de toute façon, ça plante à ...clearcontents. Estc-e que ça a à voir avec ma protection de classeur ? YANN
"FFO" a écrit :
Salut à toi
Il faut mettre :
For i = 1 To Sheets.Count If "30_31,30_41" Like "*" & Sheets(i).Name & "*" Then With Sheets(i) '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 If Next
Celà devrait te convenir Dis moi !!!
re,
en fait, le nom de l'onglet n'a pas de relation avec une suite logique, donc
je vais peut etre opter pour la solution de Corto, qui a première vu, je
trouve moins complexe.
en fait, j'ai 4 et uniquement 4 onglets pour lesquels je veux ce traitement.
mais de toute façon, ça plante à ...clearcontents.
Estc-e que ça a à voir avec ma protection de classeur ?
YANN
"FFO" a écrit :
Salut à toi
Il faut mettre :
For i = 1 To Sheets.Count
If "30_31,30_41" Like "*" & Sheets(i).Name & "*" Then
With Sheets(i)
'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 If
Next
re, en fait, le nom de l'onglet n'a pas de relation avec une suite logique, donc je vais peut etre opter pour la solution de Corto, qui a première vu, je trouve moins complexe. en fait, j'ai 4 et uniquement 4 onglets pour lesquels je veux ce traitement. mais de toute façon, ça plante à ...clearcontents. Estc-e que ça a à voir avec ma protection de classeur ? YANN
"FFO" a écrit :
Salut à toi
Il faut mettre :
For i = 1 To Sheets.Count If "30_31,30_41" Like "*" & Sheets(i).Name & "*" Then With Sheets(i) '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 If Next
Celà devrait te convenir Dis moi !!!
Sunburn
Ok, ça fonctionne très bien. voila mon code : ---- Sub tets2() ActiveWorkbook.Unprotect 'onglet 30_31 For Each XSH In Sheets(Array("30_31", "30_32")) 'deplacement With XSH .[H10:H29].Copy .[F10].PasteSpecial Paste:=xlPasteValues .[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement .[A4] = "#N:A" 'on met la valeur NA en A4 End With Next XSH Application.CutCopyMode = False End Sub ----- sauf que j'ai ma cellule A36 qui est fusionnée. J'ai essayé .Unmerge.clearcontents, mais ça marche pas..... Je comprend pas. Si tu peux m'aider, merci beaucoup. YANN
"Corto" a écrit :
Bonjour Sunburn, Si tu veux effectuer le même traitement sur plusieurs feuilles il faut plutôt utiliser For Each ... Sub FTS30() 'onglet 30_31 For Each XSH In Sheets(Array("30", "31")) 'deplacement With XSH .[H10:H29].Copy .[F10].PasteSpecial Paste:=xlPasteValues .[E10:E29,H10:H29].ClearContents 'effacement .[A4] = "#N:A" 'on met la valeur NA en A4 End With Next XSH Application.CutCopyMode = False End Sub
Corto
Sunburn a écrit : > Bonjour, > comment puis-je indiquer plusieurs onglets pour ce code : > with sheets("30_31","30_41") est-il correcte ?? > ----- > >> 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 >> > ----- > Merci. > YANN > >
Ok, ça fonctionne très bien. voila mon code :
----
Sub tets2()
ActiveWorkbook.Unprotect
'onglet 30_31
For Each XSH In Sheets(Array("30_31", "30_32"))
'deplacement
With XSH
.[H10:H29].Copy
.[F10].PasteSpecial Paste:=xlPasteValues
.[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement
.[A4] = "#N:A" 'on met la valeur NA en A4
End With
Next XSH
Application.CutCopyMode = False
End Sub
-----
sauf que j'ai ma cellule A36 qui est fusionnée.
J'ai essayé .Unmerge.clearcontents, mais ça marche pas.....
Je comprend pas.
Si tu peux m'aider, merci beaucoup.
YANN
"Corto" a écrit :
Bonjour Sunburn,
Si tu veux effectuer le même traitement sur plusieurs feuilles il faut
plutôt utiliser For Each ...
Sub FTS30()
'onglet 30_31
For Each XSH In Sheets(Array("30", "31"))
'deplacement
With XSH
.[H10:H29].Copy
.[F10].PasteSpecial Paste:=xlPasteValues
.[E10:E29,H10:H29].ClearContents 'effacement
.[A4] = "#N:A" 'on met la valeur NA en A4
End With
Next XSH
Application.CutCopyMode = False
End Sub
Corto
Sunburn a écrit :
> Bonjour,
> comment puis-je indiquer plusieurs onglets pour ce code :
> with sheets("30_31","30_41") est-il correcte ??
> -----
>
>> 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
>>
> -----
> Merci.
> YANN
>
>
Ok, ça fonctionne très bien. voila mon code : ---- Sub tets2() ActiveWorkbook.Unprotect 'onglet 30_31 For Each XSH In Sheets(Array("30_31", "30_32")) 'deplacement With XSH .[H10:H29].Copy .[F10].PasteSpecial Paste:=xlPasteValues .[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement .[A4] = "#N:A" 'on met la valeur NA en A4 End With Next XSH Application.CutCopyMode = False End Sub ----- sauf que j'ai ma cellule A36 qui est fusionnée. J'ai essayé .Unmerge.clearcontents, mais ça marche pas..... Je comprend pas. Si tu peux m'aider, merci beaucoup. YANN
"Corto" a écrit :
Bonjour Sunburn, Si tu veux effectuer le même traitement sur plusieurs feuilles il faut plutôt utiliser For Each ... Sub FTS30() 'onglet 30_31 For Each XSH In Sheets(Array("30", "31")) 'deplacement With XSH .[H10:H29].Copy .[F10].PasteSpecial Paste:=xlPasteValues .[E10:E29,H10:H29].ClearContents 'effacement .[A4] = "#N:A" 'on met la valeur NA en A4 End With Next XSH Application.CutCopyMode = False End Sub
Corto
Sunburn a écrit : > Bonjour, > comment puis-je indiquer plusieurs onglets pour ce code : > with sheets("30_31","30_41") est-il correcte ?? > ----- > >> 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 >> > ----- > Merci. > YANN > >
Sunburn
Jacky, j'avais remis un post car je ne voyais plus ta réponse, et ne voulant pas tomber dans les abimes du forums, j'ai reposté. J'ai vu ta réponse, mais mon truc c'est que y'a pas de suite logique des onglets, et je veux en sélectionner certains, pas en exclure certains. peut etre dois-je adapter ton code : if sh.name = "feuil1", "feuil2", ... sinon, le code de corto m'a l'air pas mal. YANN
"Jacky" a écrit :
Re... Voir message précèdent
-- Salutations JJ
"Sunburn" a écrit dans le message de news: > Bonjour, > comment puis-je indiquer plusieurs onglets pour ce code : > with sheets("30_31","30_41") est-il correcte ?? > ----- >> 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 > ----- > Merci. > YANN >
Jacky,
j'avais remis un post car je ne voyais plus ta réponse, et ne voulant pas
tomber dans les abimes du forums, j'ai reposté.
J'ai vu ta réponse, mais mon truc c'est que y'a pas de suite logique des
onglets, et je veux en sélectionner certains, pas en exclure certains.
peut etre dois-je adapter ton code :
if sh.name = "feuil1", "feuil2", ...
sinon, le code de corto m'a l'air pas mal.
YANN
"Jacky" a écrit :
Re...
Voir message précèdent
--
Salutations
JJ
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news: B2762DEB-7AC7-4677-8592-EBFB9CE97EFA@microsoft.com...
> Bonjour,
> comment puis-je indiquer plusieurs onglets pour ce code :
> with sheets("30_31","30_41") est-il correcte ??
> -----
>> 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
> -----
> Merci.
> YANN
>
Jacky, j'avais remis un post car je ne voyais plus ta réponse, et ne voulant pas tomber dans les abimes du forums, j'ai reposté. J'ai vu ta réponse, mais mon truc c'est que y'a pas de suite logique des onglets, et je veux en sélectionner certains, pas en exclure certains. peut etre dois-je adapter ton code : if sh.name = "feuil1", "feuil2", ... sinon, le code de corto m'a l'air pas mal. YANN
"Jacky" a écrit :
Re... Voir message précèdent
-- Salutations JJ
"Sunburn" a écrit dans le message de news: > Bonjour, > comment puis-je indiquer plusieurs onglets pour ce code : > with sheets("30_31","30_41") est-il correcte ?? > ----- >> 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 > ----- > Merci. > YANN >
FFO
Rebonjour à toi
Ma proposition n'est pas du tout basé sur une suite logique Il suffit simplement de lister tes Onglets sous cette forme :
30_31,30_41,32_58 etc.... dans la ligne :
If "30_31,30_41,32_58" Like "*" & Sheets(i).Name & "*" Then
Tous les Onglets listés seront inclus dans la procédure qui suit
Tu peux même faire appel à une cellule dans laquelle tu listeras tes Onglets de la même façon et d'écrire la ligne d'instruction ainsi (pour A1):
If Range("A1") Like "*" & Sheets(i).Name & "*" Then
Pour modifier tes cellules dans une feuille il est indispensable de la dévérouiller
Espérant avoir répondu à tes attentes Dis moi !!!
Rebonjour à toi
Ma proposition n'est pas du tout basé sur une suite logique
Il suffit simplement de lister tes Onglets sous cette forme :
30_31,30_41,32_58 etc.... dans la ligne :
If "30_31,30_41,32_58" Like "*" & Sheets(i).Name & "*" Then
Tous les Onglets listés seront inclus dans la procédure qui suit
Tu peux même faire appel à une cellule dans laquelle tu listeras tes Onglets
de la même façon et d'écrire la ligne d'instruction ainsi (pour A1):
If Range("A1") Like "*" & Sheets(i).Name & "*" Then
Pour modifier tes cellules dans une feuille il est indispensable de la
dévérouiller
Bonjour Sunburn, Si tu veux effectuer le même traitement sur plusieurs feuilles il faut plutôt utiliser For Each ... Sub FTS30() 'onglet 30_31 For Each XSH In Sheets(Array("30", "31")) 'deplacement With XSH .[H10:H29].Copy .[F10].PasteSpecial Paste:=xlPasteValues .[E10:E29,H10:H29].ClearContents 'effacement .[A4] = "#N:A" 'on met la valeur NA en A4 End With Next XSH Application.CutCopyMode = False End Sub
Bonjour, comment puis-je indiquer plusieurs onglets pour ce code : with sheets("30_31","30_41") est-il correcte ?? -----
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
Bonjour Sunburn,
Si tu veux effectuer le même traitement sur plusieurs feuilles il faut
plutôt utiliser For Each ...
Sub FTS30()
'onglet 30_31
For Each XSH In Sheets(Array("30", "31"))
'deplacement
With XSH
.[H10:H29].Copy
.[F10].PasteSpecial Paste:=xlPasteValues
.[E10:E29,H10:H29].ClearContents 'effacement
.[A4] = "#N:A" 'on met la valeur NA en A4
End With
Next XSH
Application.CutCopyMode = False
End Sub
Bonjour,
comment puis-je indiquer plusieurs onglets pour ce code :
with sheets("30_31","30_41") est-il correcte ??
-----
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
Bonjour Sunburn, Si tu veux effectuer le même traitement sur plusieurs feuilles il faut plutôt utiliser For Each ... Sub FTS30() 'onglet 30_31 For Each XSH In Sheets(Array("30", "31")) 'deplacement With XSH .[H10:H29].Copy .[F10].PasteSpecial Paste:=xlPasteValues .[E10:E29,H10:H29].ClearContents 'effacement .[A4] = "#N:A" 'on met la valeur NA en A4 End With Next XSH Application.CutCopyMode = False End Sub
Bonjour, comment puis-je indiquer plusieurs onglets pour ce code : with sheets("30_31","30_41") est-il correcte ?? -----
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
----- Merci. YANN
Sunburn
Ok, ça marche, et effectivement, la defusion n'est pas envisageable, donc j'utilise le 1). Merci. YANN
"Corto" a écrit :
Bonjour Sunburn, Si c'est toujours la même cellule qui est fusionnée, tu peux remplacer .[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement par .[E10:E29,H10:H29,M10:M29].ClearContents 'effacement .[A36].MergeArea.ClearContents Sinon la meilleure solution est de défusionner toutes les cellules de la feuille au début de la procédure par ActiveSheet.Cells.UnMerge
Corto
Sunburn a écrit : > Ok, ça fonctionne très bien. voila mon code : > ---- > Sub tets2() > ActiveWorkbook.Unprotect > 'onglet 30_31 > For Each XSH In Sheets(Array("30_31", "30_32")) > 'deplacement > With XSH > .[H10:H29].Copy > .[F10].PasteSpecial Paste:=xlPasteValues > .[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement > .[A4] = "#N:A" 'on met la valeur NA en A4 > End With > Next XSH > Application.CutCopyMode = False > End Sub > ----- > sauf que j'ai ma cellule A36 qui est fusionnée. > J'ai essayé .Unmerge.clearcontents, mais ça marche pas..... > Je comprend pas. > Si tu peux m'aider, merci beaucoup. > YANN > > "Corto" a écrit : > > >> Bonjour Sunburn, >> Si tu veux effectuer le même traitement sur plusieurs feuilles il faut >> plutôt utiliser For Each ... >> Sub FTS30() >> 'onglet 30_31 >> For Each XSH In Sheets(Array("30", "31")) >> 'deplacement >> With XSH >> .[H10:H29].Copy >> .[F10].PasteSpecial Paste:=xlPasteValues >> .[E10:E29,H10:H29].ClearContents 'effacement >> .[A4] = "#N:A" 'on met la valeur NA en A4 >> End With >> Next XSH >> Application.CutCopyMode = False >> End Sub >> >> Corto >> >> Sunburn a écrit : >> >>> Bonjour, >>> comment puis-je indiquer plusieurs onglets pour ce code : >>> with sheets("30_31","30_41") est-il correcte ?? >>> ----- >>> >>> >>>> 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 >>>> >>>> >>> ----- >>> Merci. >>> YANN >>> >>> >>>
Ok, ça marche, et effectivement, la defusion n'est pas envisageable, donc
j'utilise le 1).
Merci.
YANN
"Corto" a écrit :
Bonjour Sunburn,
Si c'est toujours la même cellule qui est fusionnée, tu peux remplacer
.[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement
par
.[E10:E29,H10:H29,M10:M29].ClearContents 'effacement
.[A36].MergeArea.ClearContents
Sinon la meilleure solution est de défusionner toutes les cellules de la
feuille au début de la procédure par
ActiveSheet.Cells.UnMerge
Corto
Sunburn a écrit :
> Ok, ça fonctionne très bien. voila mon code :
> ----
> Sub tets2()
> ActiveWorkbook.Unprotect
> 'onglet 30_31
> For Each XSH In Sheets(Array("30_31", "30_32"))
> 'deplacement
> With XSH
> .[H10:H29].Copy
> .[F10].PasteSpecial Paste:=xlPasteValues
> .[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement
> .[A4] = "#N:A" 'on met la valeur NA en A4
> End With
> Next XSH
> Application.CutCopyMode = False
> End Sub
> -----
> sauf que j'ai ma cellule A36 qui est fusionnée.
> J'ai essayé .Unmerge.clearcontents, mais ça marche pas.....
> Je comprend pas.
> Si tu peux m'aider, merci beaucoup.
> YANN
>
> "Corto" a écrit :
>
>
>> Bonjour Sunburn,
>> Si tu veux effectuer le même traitement sur plusieurs feuilles il faut
>> plutôt utiliser For Each ...
>> Sub FTS30()
>> 'onglet 30_31
>> For Each XSH In Sheets(Array("30", "31"))
>> 'deplacement
>> With XSH
>> .[H10:H29].Copy
>> .[F10].PasteSpecial Paste:=xlPasteValues
>> .[E10:E29,H10:H29].ClearContents 'effacement
>> .[A4] = "#N:A" 'on met la valeur NA en A4
>> End With
>> Next XSH
>> Application.CutCopyMode = False
>> End Sub
>>
>> Corto
>>
>> Sunburn a écrit :
>>
>>> Bonjour,
>>> comment puis-je indiquer plusieurs onglets pour ce code :
>>> with sheets("30_31","30_41") est-il correcte ??
>>> -----
>>>
>>>
>>>> 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
>>>>
>>>>
>>> -----
>>> Merci.
>>> YANN
>>>
>>>
>>>
Ok, ça marche, et effectivement, la defusion n'est pas envisageable, donc j'utilise le 1). Merci. YANN
"Corto" a écrit :
Bonjour Sunburn, Si c'est toujours la même cellule qui est fusionnée, tu peux remplacer .[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement par .[E10:E29,H10:H29,M10:M29].ClearContents 'effacement .[A36].MergeArea.ClearContents Sinon la meilleure solution est de défusionner toutes les cellules de la feuille au début de la procédure par ActiveSheet.Cells.UnMerge
Corto
Sunburn a écrit : > Ok, ça fonctionne très bien. voila mon code : > ---- > Sub tets2() > ActiveWorkbook.Unprotect > 'onglet 30_31 > For Each XSH In Sheets(Array("30_31", "30_32")) > 'deplacement > With XSH > .[H10:H29].Copy > .[F10].PasteSpecial Paste:=xlPasteValues > .[E10:E29,H10:H29,M10:M29,A36].ClearContents 'effacement > .[A4] = "#N:A" 'on met la valeur NA en A4 > End With > Next XSH > Application.CutCopyMode = False > End Sub > ----- > sauf que j'ai ma cellule A36 qui est fusionnée. > J'ai essayé .Unmerge.clearcontents, mais ça marche pas..... > Je comprend pas. > Si tu peux m'aider, merci beaucoup. > YANN > > "Corto" a écrit : > > >> Bonjour Sunburn, >> Si tu veux effectuer le même traitement sur plusieurs feuilles il faut >> plutôt utiliser For Each ... >> Sub FTS30() >> 'onglet 30_31 >> For Each XSH In Sheets(Array("30", "31")) >> 'deplacement >> With XSH >> .[H10:H29].Copy >> .[F10].PasteSpecial Paste:=xlPasteValues >> .[E10:E29,H10:H29].ClearContents 'effacement >> .[A4] = "#N:A" 'on met la valeur NA en A4 >> End With >> Next XSH >> Application.CutCopyMode = False >> End Sub >> >> Corto >> >> Sunburn a écrit : >> >>> Bonjour, >>> comment puis-je indiquer plusieurs onglets pour ce code : >>> with sheets("30_31","30_41") est-il correcte ?? >>> ----- >>> >>> >>>> 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 >>>> >>>> >>> ----- >>> Merci. >>> YANN >>> >>> >>>
Jacky
Re...
sinon, le code de corto m'a l'air pas mal.
Tout à fait. -- Salutations JJ
"Sunburn" a écrit dans le message de news:
Jacky, j'avais remis un post car je ne voyais plus ta réponse, et ne voulant pas tomber dans les abimes du forums, j'ai reposté. J'ai vu ta réponse, mais mon truc c'est que y'a pas de suite logique des onglets, et je veux en sélectionner certains, pas en exclure certains. peut etre dois-je adapter ton code : if sh.name = "feuil1", "feuil2", ... sinon, le code de corto m'a l'air pas mal. YANN
"Jacky" a écrit :
Re... Voir message précèdent
-- Salutations JJ
"Sunburn" a écrit dans le message de news: > Bonjour, > comment puis-je indiquer plusieurs onglets pour ce code : > with sheets("30_31","30_41") est-il correcte ?? > ----- >> 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 > ----- > Merci. > YANN >
Re...
sinon, le code de corto m'a l'air pas mal.
Tout à fait.
--
Salutations
JJ
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news: 3E617CA1-5419-4EEE-9124-F65E18614E15@microsoft.com...
Jacky,
j'avais remis un post car je ne voyais plus ta réponse, et ne voulant pas
tomber dans les abimes du forums, j'ai reposté.
J'ai vu ta réponse, mais mon truc c'est que y'a pas de suite logique des
onglets, et je veux en sélectionner certains, pas en exclure certains.
peut etre dois-je adapter ton code :
if sh.name = "feuil1", "feuil2", ...
sinon, le code de corto m'a l'air pas mal.
YANN
"Jacky" a écrit :
Re...
Voir message précèdent
--
Salutations
JJ
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news: B2762DEB-7AC7-4677-8592-EBFB9CE97EFA@microsoft.com...
> Bonjour,
> comment puis-je indiquer plusieurs onglets pour ce code :
> with sheets("30_31","30_41") est-il correcte ??
> -----
>> 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
> -----
> Merci.
> YANN
>
Jacky, j'avais remis un post car je ne voyais plus ta réponse, et ne voulant pas tomber dans les abimes du forums, j'ai reposté. J'ai vu ta réponse, mais mon truc c'est que y'a pas de suite logique des onglets, et je veux en sélectionner certains, pas en exclure certains. peut etre dois-je adapter ton code : if sh.name = "feuil1", "feuil2", ... sinon, le code de corto m'a l'air pas mal. YANN
"Jacky" a écrit :
Re... Voir message précèdent
-- Salutations JJ
"Sunburn" a écrit dans le message de news: > Bonjour, > comment puis-je indiquer plusieurs onglets pour ce code : > with sheets("30_31","30_41") est-il correcte ?? > ----- >> 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 > ----- > Merci. > YANN >