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

Comment copier/coller d'une feuille à l'autre toutes les cellules sauf celles qui contiennent certaines formules ?

4 réponses
Avatar
AB
Bonjour à tous,

J'ai 2 feuilles feuil1 et feuil2 (oui, pardon...).
Je cherche à repérer dans feuil1 toutes les cellules qui ne contiennent PAS
la formule "ALEA.ENTRE.BORNES(.....), ou la formule ALEA(), puis à copier
coller toutes ces cellules dans feuil2.
Avez-vous une idée ?
Merci
AB

4 réponses

Avatar
Daniel
Bonsoir.
Quelque chose du genre :

Sub test()
Dim Plage As Range, c As Range
ActiveSheet.Cells.Copy Sheets("Feuil2").Range("A1")
For Each c In ActiveSheet.UsedRange
If Left(c.FormulaLocal, 5) = "=ALEA" Then
Sheets("Feuil2").Range(c.Address).ClearContents
End If
Next c
End Sub

Mais ça peut être LONG.
Cordialement.
Daniel
"AB" a écrit dans le message de news:

Bonjour à tous,

J'ai 2 feuilles feuil1 et feuil2 (oui, pardon...).
Je cherche à repérer dans feuil1 toutes les cellules qui ne contiennent
PAS la formule "ALEA.ENTRE.BORNES(.....), ou la formule ALEA(), puis à
copier coller toutes ces cellules dans feuil2.
Avez-vous une idée ?
Merci
AB



Avatar
AB
Salut Daniel,
Ca marche très bien, et c'est très rapide (mes feuilles ne sont pas très
"grosses").
Le seul hic de ta soluce, c'est que la formule doit commencer par "=ALEA".
Or, je cherche à faire en sorte que ça marche quand il y a ALEA dans la
formule, où que ce soit.
comme, par exemple, =ENT((ALEA.ENTRE.BORNES(10;20)/1000)*B12)
Ca m'a l'air plus difficile. Si tu as une idée, je suis preneur.
André


"Daniel" a écrit dans le message de news:
u7L3o%
Bonsoir.
Quelque chose du genre :

Sub test()
Dim Plage As Range, c As Range
ActiveSheet.Cells.Copy Sheets("Feuil2").Range("A1")
For Each c In ActiveSheet.UsedRange
If Left(c.FormulaLocal, 5) = "=ALEA" Then
Sheets("Feuil2").Range(c.Address).ClearContents
End If
Next c
End Sub

Mais ça peut être LONG.
Cordialement.
Daniel
"AB" a écrit dans le message de news:

Bonjour à tous,

J'ai 2 feuilles feuil1 et feuil2 (oui, pardon...).
Je cherche à repérer dans feuil1 toutes les cellules qui ne contiennent
PAS la formule "ALEA.ENTRE.BORNES(.....), ou la formule ALEA(), puis à
copier coller toutes ces cellules dans feuil2.
Avez-vous une idée ?
Merci
AB







Avatar
Daniel
Essaie :

Sub test()
Dim Plage As Range, c As Range
ActiveSheet.Cells.Copy Sheets("Feuil3").Range("A1")
For Each c In ActiveSheet.UsedRange
If InStr(1, c.FormulaLocal, "ALEA") > 0 Then
Sheets("Feuil3").Range(c.Address).ClearContents
End If
Next c
End Sub

Daniel
"AB" a écrit dans le message de news:

Salut Daniel,
Ca marche très bien, et c'est très rapide (mes feuilles ne sont pas très
"grosses").
Le seul hic de ta soluce, c'est que la formule doit commencer par "=ALEA".
Or, je cherche à faire en sorte que ça marche quand il y a ALEA dans la
formule, où que ce soit.
comme, par exemple, =ENT((ALEA.ENTRE.BORNES(10;20)/1000)*B12)
Ca m'a l'air plus difficile. Si tu as une idée, je suis preneur.
André


"Daniel" a écrit dans le message de news:
u7L3o%
Bonsoir.
Quelque chose du genre :

Sub test()
Dim Plage As Range, c As Range
ActiveSheet.Cells.Copy Sheets("Feuil2").Range("A1")
For Each c In ActiveSheet.UsedRange
If Left(c.FormulaLocal, 5) = "=ALEA" Then
Sheets("Feuil2").Range(c.Address).ClearContents
End If
Next c
End Sub

Mais ça peut être LONG.
Cordialement.
Daniel
"AB" a écrit dans le message de news:

Bonjour à tous,

J'ai 2 feuilles feuil1 et feuil2 (oui, pardon...).
Je cherche à repérer dans feuil1 toutes les cellules qui ne contiennent
PAS la formule "ALEA.ENTRE.BORNES(.....), ou la formule ALEA(), puis à
copier coller toutes ces cellules dans feuil2.
Avez-vous une idée ?
Merci
AB











Avatar
AB
Excellent !
Merci beaucoup Daniel.
Passe un bon dimanche (ensoleillé ici, à Marseille. J'espère qu'il en est de
même pour toi).
André

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

Essaie :

Sub test()
Dim Plage As Range, c As Range
ActiveSheet.Cells.Copy Sheets("Feuil3").Range("A1")
For Each c In ActiveSheet.UsedRange
If InStr(1, c.FormulaLocal, "ALEA") > 0 Then
Sheets("Feuil3").Range(c.Address).ClearContents
End If
Next c
End Sub

Daniel
"AB" a écrit dans le message de news:

Salut Daniel,
Ca marche très bien, et c'est très rapide (mes feuilles ne sont pas très
"grosses").
Le seul hic de ta soluce, c'est que la formule doit commencer par
"=ALEA".
Or, je cherche à faire en sorte que ça marche quand il y a ALEA dans la
formule, où que ce soit.
comme, par exemple, =ENT((ALEA.ENTRE.BORNES(10;20)/1000)*B12)
Ca m'a l'air plus difficile. Si tu as une idée, je suis preneur.
André


"Daniel" a écrit dans le message de news:
u7L3o%
Bonsoir.
Quelque chose du genre :

Sub test()
Dim Plage As Range, c As Range
ActiveSheet.Cells.Copy Sheets("Feuil2").Range("A1")
For Each c In ActiveSheet.UsedRange
If Left(c.FormulaLocal, 5) = "=ALEA" Then
Sheets("Feuil2").Range(c.Address).ClearContents
End If
Next c
End Sub

Mais ça peut être LONG.
Cordialement.
Daniel
"AB" a écrit dans le message de news:

Bonjour à tous,

J'ai 2 feuilles feuil1 et feuil2 (oui, pardon...).
Je cherche à repérer dans feuil1 toutes les cellules qui ne contiennent
PAS la formule "ALEA.ENTRE.BORNES(.....), ou la formule ALEA(), puis à
copier coller toutes ces cellules dans feuil2.
Avez-vous une idée ?
Merci
AB