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

enlever les 0 par VBA

9 réponses
Avatar
YANN24
Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce possible?
Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN

9 réponses

Avatar
RT
Bonjour

C'est plus ou moins la même chose que je demande
Voir mon message "Ingnorer les cellules vides" avec une faute dans le
titre!
Et à mon avis ils sont tous partis soit manger soit à la plage par cette
merveilleuse après-midi
vu que je n'ai encore rien eu comme réponse CE QUI EST TRES RARE DANS CE
GROUPE
je m'empresse de le dire

Enfin attendons il y aura surement un qui pianotte aujourd'hui

Rex :-)))))))



"YANN24" wrote in message
news:
Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce
possible?

Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN


Avatar
YANN24
re,
peut être que tu peux regarder les réponses à certaines questions, j'ai cru
voir un truc qui pourrait peut être t'intéressé en attendant que la mer soit
de nouveau basse.
Tape : zéro dans le moteur de recherche juste au dessus des posts, et
regarde, y'a ptèt quelque chose pour toi.
@+.
YANN


Bonjour

C'est plus ou moins la même chose que je demande
Voir mon message "Ingnorer les cellules vides" avec une faute dans le
titre!
Et à mon avis ils sont tous partis soit manger soit à la plage par cette
merveilleuse après-midi
vu que je n'ai encore rien eu comme réponse CE QUI EST TRES RARE DANS CE
GROUPE
je m'empresse de le dire

Enfin attendons il y aura surement un qui pianotte aujourd'hui

Rex :-)))))))



"YANN24" wrote in message
news:
Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce
possible?

Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN







Avatar
anonymousA
re,

la question que je me pose c'est de quelle cellule parles-tu car les
cellules que tu copies sont au nombre de 10.
Si donc on doit compter si le nombre de cellules vides ou égales à0
correspond au nombre de cellules à copier, on peut écrire soit l'une ou
l'autre ou un mix des deux expressions suivantes
If Application.WorksheetFunction.CountA(Sheets("Analyse").Range("G" & I &
":P" & I)) = 0 Then "ne pas faire la copie"
ou If Application.WorksheetFunction.CountIf(Sheets(Analyse).Range("G" & I &
":P" & I), 0)  Then ne pas faire la copie

ou alors scruter la plage de cellules à copier cellule par cellule et ne
copier ( mais là encore cellule par cellule) que les cellules non vides ou
non égales à zéro

du moins si j'ai vraiemnt compris ta demande.

A+

J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub


Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce possible?
Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN


Avatar
YANN24
Oui, en fait c'est ça.
je copie 12 fois 10 cellules (à 20 lignes d'intervalles), mais je n'ai
besoin que des valeurs non nulles.

Donc, comment dois-je l'inclure dans mon code actuel?

Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub



Merci. YANN


re,

la question que je me pose c'est de quelle cellule parles-tu car les
cellules que tu copies sont au nombre de 10.
Si donc on doit compter si le nombre de cellules vides ou égales à0
correspond au nombre de cellules à copier, on peut écrire soit l'une ou
l'autre ou un mix des deux expressions suivantes
If Application.WorksheetFunction.CountA(Sheets("Analyse").Range("G" & I &
":P" & I)) = 0 Then "ne pas faire la copie"
ou If Application.WorksheetFunction.CountIf(Sheets(Analyse).Range("G" & I &
":P" & I), 0)  Then ne pas faire la copie

ou alors scruter la plage de cellules à copier cellule par cellule et ne
copier ( mais là encore cellule par cellule) que les cellules non vides ou
non égales à zéro

du moins si j'ai vraiemnt compris ta demande.

A+

J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub


Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce possible?
Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN




Avatar
RT
Merci

J'ai trouvé deux trois trucs que je vais essayer
C'est con mais on ne pense pas souvent à la recherche "intelligente"
En générale je feuillette manuellement, et bien sûr je ne trouve pas
toujours

Je ne suis pas sur que ce soit parfait mais il s'agit d'une piste à suivre

Encore merci et à bientôt

Rex


"YANN24" wrote in message
news:
re,
peut être que tu peux regarder les réponses à certaines questions, j'ai
cru

voir un truc qui pourrait peut être t'intéressé en attendant que la mer
soit

de nouveau basse.
Tape : zéro dans le moteur de recherche juste au dessus des posts, et
regarde, y'a ptèt quelque chose pour toi.
@+.
YANN


Bonjour

C'est plus ou moins la même chose que je demande
Voir mon message "Ingnorer les cellules vides" avec une faute dans le
titre!
Et à mon avis ils sont tous partis soit manger soit à la plage par cette
merveilleuse après-midi
vu que je n'ai encore rien eu comme réponse CE QUI EST TRES RARE DANS
CE


GROUPE
je m'empresse de le dire

Enfin attendons il y aura surement un qui pianotte aujourd'hui

Rex :-)))))))



"YANN24" wrote in message
news:
Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce
possible?

Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN









Avatar
OnE
Pourquoi ne pas effectuer un post-traitement sur la feuille résumé ?

Selectionner la plage où tu as copié tes données soit manuellement soit pas
macro puis faire

For Each cellule In Selection
If cellule.Value = 0 Then cellule.Value = ""
Next



Oui, en fait c'est ça.
je copie 12 fois 10 cellules (à 20 lignes d'intervalles), mais je n'ai
besoin que des valeurs non nulles.

Donc, comment dois-je l'inclure dans mon code actuel?

Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub



Merci. YANN


re,

la question que je me pose c'est de quelle cellule parles-tu car les
cellules que tu copies sont au nombre de 10.
Si donc on doit compter si le nombre de cellules vides ou égales à0
correspond au nombre de cellules à copier, on peut écrire soit l'une ou
l'autre ou un mix des deux expressions suivantes
If Application.WorksheetFunction.CountA(Sheets("Analyse").Range("G" & I &
":P" & I)) = 0 Then "ne pas faire la copie"
ou If Application.WorksheetFunction.CountIf(Sheets(Analyse).Range("G" & I &
":P" & I), 0)  Then ne pas faire la copie

ou alors scruter la plage de cellules à copier cellule par cellule et ne
copier ( mais là encore cellule par cellule) que les cellules non vides ou
non égales à zéro

du moins si j'ai vraiemnt compris ta demande.

A+

J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub


Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce possible?
Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN






Avatar
YANN24
De rien.
Et en plus, quand n arrive à avoir une piste (donc un début de code), c'est
plus facile pour les stars de ce forum de comprendre ce que tu veux et les
modifs à daire.

Bon surf (et pas en mer)
YANN


Merci

J'ai trouvé deux trois trucs que je vais essayer
C'est con mais on ne pense pas souvent à la recherche "intelligente"
En générale je feuillette manuellement, et bien sûr je ne trouve pas
toujours

Je ne suis pas sur que ce soit parfait mais il s'agit d'une piste à suivre

Encore merci et à bientôt

Rex


"YANN24" wrote in message
news:
re,
peut être que tu peux regarder les réponses à certaines questions, j'ai
cru

voir un truc qui pourrait peut être t'intéressé en attendant que la mer
soit

de nouveau basse.
Tape : zéro dans le moteur de recherche juste au dessus des posts, et
regarde, y'a ptèt quelque chose pour toi.
@+.
YANN


Bonjour

C'est plus ou moins la même chose que je demande
Voir mon message "Ingnorer les cellules vides" avec une faute dans le
titre!
Et à mon avis ils sont tous partis soit manger soit à la plage par cette
merveilleuse après-midi
vu que je n'ai encore rien eu comme réponse CE QUI EST TRES RARE DANS
CE


GROUPE
je m'empresse de le dire

Enfin attendons il y aura surement un qui pianotte aujourd'hui

Rex :-)))))))



"YANN24" wrote in message
news:
Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce
possible?

Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN














Avatar
YANN24
Merci, ça fonctionne nikel comme ça.
YANN


Pourquoi ne pas effectuer un post-traitement sur la feuille résumé ?

Selectionner la plage où tu as copié tes données soit manuellement soit pas
macro puis faire

For Each cellule In Selection
If cellule.Value = 0 Then cellule.Value = ""
Next



Oui, en fait c'est ça.
je copie 12 fois 10 cellules (à 20 lignes d'intervalles), mais je n'ai
besoin que des valeurs non nulles.

Donc, comment dois-je l'inclure dans mon code actuel?

Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub



Merci. YANN


re,

la question que je me pose c'est de quelle cellule parles-tu car les
cellules que tu copies sont au nombre de 10.
Si donc on doit compter si le nombre de cellules vides ou égales à0
correspond au nombre de cellules à copier, on peut écrire soit l'une ou
l'autre ou un mix des deux expressions suivantes
If Application.WorksheetFunction.CountA(Sheets("Analyse").Range("G" & I &
":P" & I)) = 0 Then "ne pas faire la copie"
ou If Application.WorksheetFunction.CountIf(Sheets(Analyse).Range("G" & I &
":P" & I), 0)  Then ne pas faire la copie

ou alors scruter la plage de cellules à copier cellule par cellule et ne
copier ( mais là encore cellule par cellule) que les cellules non vides ou
non égales à zéro

du moins si j'ai vraiemnt compris ta demande.

A+

J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub


Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce possible?
Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN








Avatar
Phil99999
Bonjour Yann, désolé j'étais pas revenu depuis qlques temps !! Je vois que tu
as bien avancé !
Pour éviter le post traitement -->

Sub test()
J = 8
For I = 8 To 428 Step 20
if Sheets("Analyse").Range("G" & I & ":P" & I).value <> 0 then
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
end if
J = J + 1
Next
End Sub



Merci, ça fonctionne nikel comme ça.
YANN


Pourquoi ne pas effectuer un post-traitement sur la feuille résumé ?

Selectionner la plage où tu as copié tes données soit manuellement soit pas
macro puis faire

For Each cellule In Selection
If cellule.Value = 0 Then cellule.Value = ""
Next



Oui, en fait c'est ça.
je copie 12 fois 10 cellules (à 20 lignes d'intervalles), mais je n'ai
besoin que des valeurs non nulles.

Donc, comment dois-je l'inclure dans mon code actuel?

Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub



Merci. YANN


re,

la question que je me pose c'est de quelle cellule parles-tu car les
cellules que tu copies sont au nombre de 10.
Si donc on doit compter si le nombre de cellules vides ou égales à0
correspond au nombre de cellules à copier, on peut écrire soit l'une ou
l'autre ou un mix des deux expressions suivantes
If Application.WorksheetFunction.CountA(Sheets("Analyse").Range("G" & I &
":P" & I)) = 0 Then "ne pas faire la copie"
ou If Application.WorksheetFunction.CountIf(Sheets(Analyse).Range("G" & I &
":P" & I), 0)  Then ne pas faire la copie

ou alors scruter la plage de cellules à copier cellule par cellule et ne
copier ( mais là encore cellule par cellule) que les cellules non vides ou
non égales à zéro

du moins si j'ai vraiemnt compris ta demande.

A+

J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub


Bonjour,

voici mon code VBA (copie-collage de lignes)
-------
Sub test()
J = 8
For I = 8 To 428 Step 20
Sheets("Analyse").Range("G" & I & ":P" & I).Copy
Sheets("Résumé").Range("B" & J).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
J = J + 1
Next
End Sub
------------
Je voudrais ne rien copier si la valeur de la cellule = 0. Est ce possible?
Comme ceci?
********
If Cells(I).Value = 0 Then
Cells(I).Value = ""
End If
*******
et je le met au début ou à la fin?

Merci.
YANN