Remplacer les 0 par la case précédente

  • Initiateur de la discussion Initiateur de la discussion Pika
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Pika

Guest
Bonjour à vous.
Malgré mes recherches sur le forum, je n'ai pas trouvé (et pas su adapté) ce que je voulais.
Ne pouvant pas poster de fichier, je vais ecrire mon code.

Je voudrais donc remplacer tout les zeros d'une plage de données ( B7:S10086) par la valeur de la case précédente ( étant donné que ce ne sera pas un zero vu que la macro aura deja remplacé la valeur 😛).

Sub supprimer_zero()
Range('B7').Select
For j = 1 To 18
Columns(j).Select
Cells(7, j).Select
For i = 1 To Cells(10086, j).End(xlUp).Row
If ActiveCell.Value = '0' Then
Range(i, j).Value = Range(i - 1, j).Value
Else
Selection.Offset(1, 0).Select
End If
Next i
Next j
End Sub

A noter aussi que je n'ai pas encore créé la vérification pour la premiere ligne, car au dessus (ligne6) il y a des noms et il faudra donc copier la valeur suivante si ce n'est pas un zero ... mais ca je devrais pouvoir le faire une fois que j'aurais la syntaxe 😀.

Pettite précision : Je n'ai jamais fait de VBA, et je suis sous Excel 2002.

Merci de votre aide.
 
Bonjour,

ce code devrait convenir a ton besoin :

Code:
Private Sub supprime_zero()
Application.ScreenUpdating = False
For j = 1 To 18
    For i = 7 To 10086
        Cells(i, j).Select
        If ActiveCell.Value = 0 Then
            ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
        End If
    Next i
Next j
Application.ScreenUpdating = True
End Sub

On te laisse chercher pour la ligne 6 ou tu veux le code ?

A+

Edit : départ depuis la ligne 7 😛
Edit 2 : héhé .. doublé Robert, mais bon... c'est lui qui a raison : son code est commenté...

Message édité par: 2passage, à: 28/06/2005 11:41
 
Bonjour Pika,

Le code ci-dessous conviendra mieux si j'ai bien saisi ton problème :

Sub supprimer_zero()
Dim cel As Range 'déclare la variable cel
Dim j As Byte 'décalre la variable j

For j = 1 To 18 'boucle sur 18 colonnes
'boucle sur la plage J7:J_dernière_éditée
For Each cel In Range(Cells(7, j), Cells(10086, j).End(xlUp))
'Attention ! Tu considèrais ton zéro comme du texte !
'Il ne faut pas de guillemets pour les nombres...
If cel.Value = 0 Then 'condition : si la cellule égale zéro
cel.Value = cel.Offset(-1, 0).Value 'prend la valeur de la cellule du dessus
End If 'fin de la condition
Next cel 'prochaine cellule de la plage
Next j 'prochaine colonne
End Sub

Édition

Bonjour 2passage on était synchro... mais t'es passé devant...


Message édité par: Robert, à: 28/06/2005 11:38
 
Bonjour Pika,

ton code est tout à fait correct sauf :

If ActiveCell.Value = '0' Then

cette ligne ne va pas rechercher la VALEUR 0 mais le TEXTE 0 puisque tu le mets entre ''

enleves les '' et cela devrait fct ok

et zut, pas raffraichi , comme d'hab

bonjour à tous et bonne journée

Message édité par: mutzik, à: 28/06/2005 11:40
 
Bonjour le fil, le forum,

Juste pour embêter Mutzik !
tu es sûr que Range(i, j).Value = Range(i - 1, j).Value ça marche...

Je profite de cette petite pique pour te féliciter en live pour le Chef-d'œuvre de ta 100ème. À mon humble avis on a rien fait de mieux...


Édition

M... C'est mon 400ème et j'ai rien préparé... Quel naze !

Message édité par: Robert, à: 28/06/2005 11:51
 
Je vous remercie pour vos réponses 😀.
Effectivement, j'ai fait beaucoup d'erreurs que j aurais du corriger moi meme ( comme le texte...) mais on dira queje suis fatigué 😀.

Pour ce qui est de la vérification, je préfère chercher un peu 😀, je reviendrai cet apres midi si je n'y suis pas arrivé.

Encore merci à vous tous.

Pika
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Réponses
2
Affichages
214
Réponses
10
Affichages
714
Réponses
3
Affichages
569
Réponses
1
Affichages
165
Retour