XL 2010 REMPLACER LES CELLULES VIDE PAR DES 0 SOUS CONDITION

br44

XLDnaute Impliqué
bonjour à toutes et a tous .
je reviens vers vous juste pour savoir si vous pouvez m'aider à résoudre se petit problème .

Dans la macro ci -dessous :
With WsDFC
.Range("B122").Copy
End With
With WsFC
If Not Rcell Is Nothing Then
WsFC.Select
Range("A" & Rcell.Row).Select
Range("A" & Rcell.Row).End(xlToRight).Offset(0, 1).PasteSpecial Paste:=xlPasteValues
End If
End With
With WsFC
If Me.CheckBox3.Value Then
Application.ScreenUpdating = False
'boucle sur l'ensemble des ligne du tableaui
For X = 7 To 44 'pour les lignes concernées

Cells(X, Rcell.Row).Select 'pour la première colonne vide
Selection.Replace What:=Cells(X, Rcell.Row).Value, Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Next
Application.ScreenUpdating = True
End If
End With


Comment puis insérer la fonction suivante :

Si la cellule I3 et = à "ok " 'CONDITION"
recherche toutes les cellules vides des la colonne en court et remplace ses en affichant des 0
une fois cette action faite efface la efface la cellules i3 .

je m'explique : je ne rentre qu'une parties des lignes allant de 7 à 44 ( de 10 à 30 en fonction des jours ) il reste donc des cellules vides se sont celle ci qui doivent affiche 0

exemple : si les cellules C7 , C9 et C15 sont remplie les cellules C8 et C10 à C14 sont vide alors affiche 0 a la place .

voilà j'espère êtres claire . n'hésiter pas ma poser tout les question qu'il vous serait utiles .

Amicalement Br44
 

br44

XLDnaute Impliqué
Bonjour Staple1600 ,

tout d'abord merci d'avoir répondu et mille excuses pour le temps de réponse . De plus je te remercie de m'avoir signalé mon oublie , donc pour t'aider toi et le forum voici un fichier qui vous donne les résultat final que je souhaite .vous y trouverez également une copie de la procédure à compléter si c'est possible . merci d'avance pour vôtres aide en espérant vous relire bientôt . Amicalement Br44
 

Pièces jointes

  • resultat voulue après pricedure .xlsm
    32.4 KB · Affichages: 36

Staple1600

XLDnaute Barbatruc
Bonjour le fil; le forum

Le code actuel associé au bouton fonctionne chez toi ???
Chez moi non
Donc j'ai écrit celui-ci à la place
VB:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If Me.CheckBox1.Value Then
Range("I3").Value = "OK"
For X = 8 To 45
If Len(Cells(X, 3)) = 0 Then
Cells(X, 3) = 0
End If
Next
Else
Range("I3") = vbNullString
End If
End Sub
 
Dernière édition:

br44

XLDnaute Impliqué
Bonjour staple 1600 ,Job 75 ,et le forum .

pour répondre à votre interrogation très cher job75 c'est simple j'ai une colonne qui ne se remplie que partiellement et donc qui me laisse des case vide . habituellement ont laisserais comme ça pour éviter un surcharge a l'écran , mais ma macro de base (voir premier message ) elle est basé sur la recherche de la première colonne vide . Donc le souci c'est quand il y a une infos le décalage se produit ,mais si la case est vide la macro s'exécute dans la cellule vide de la colonne précédant se que je ne veux pas ,D'où l'option de mettre des "o" comme ça il n'y a plus de cellule vide et le declage s'effectue dans la bonne colonne .
Maintenant si vous avez un moyen de faire cela s'en afficher de "0" et d'éviter d'avoir 3 boucle * a faire moi je suis preneur .

* oui petites explication de texte :
1 boucle vertical pour trouve le n° de clients
1 boucles pour déterminé la semaine correspondant à la ligne 7 de feuil source
1 boucles pour trouver la bonne journée correspondant a la ligne 8 de la feuille source .

ci -joint le fichier complet où la partie de se program se trouve dans l'userform3 et qui correspond au bouton 3 se dernier s'ouvre en cliquant sur le bouton validation
voilà les amis si vous voulez vous amuser .

avant de finir je tient a te remercier Staple1600 pour la rapidité de ta réponse . je vous remercie également pour se débat enrichissant .amicalement a tous Br44
 

Pièces jointes

  • ESSAIS VALIDATIONV3.xlsm
    406.8 KB · Affichages: 39

br44

XLDnaute Impliqué
re a tous ,

bon près avoir teste sur mon program de base je suis en mesure de vous dire que cela fonctionne parfaitement .donc grand merci a toi Staple 1600
a bientôt . je laisse le sujet ouvert encore un peu pour voir vos proposition .
A noter 'a la suite d'un fausse manip la feuille "Fiche clients " a disparue du fichier j'en suis désoler . Amicalement br44

voici le fichier réparer
 

Pièces jointes

  • ESSAIS VALIDATIONV3.xlsm
    427.7 KB · Affichages: 40

br44

XLDnaute Impliqué
re a tous et désoler staple 1600 .

juste une petite question en passant tu te base toujours sur la colonne 3 hors est-il possible de se baser suer le colonne en court

oui faut il tenir compte que je décale a la première colonne vide après chaque journée donc a partir de la colonne 3 et jusqu'à la colonne AD .
donne moi juste la bonne formulation et je ferrais la modification merci d'avance .

j'ai essayer ad8 .end(xltoleft ...... mais cela ne fonctionne pas . désoler de te solliciter pour si peux et merci d'avance.amicalement br44
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Comme ça?
VB:
Private Sub CommandButton1_Click()
Dim Col as Long
Application.ScreenUpdating = False
Col=Activecell.Column
If Me.CheckBox1.Value Then
Range("I3").Value = "OK"
For X = 8 To 45
If Len(Cells(X, Col)) = 0 Then
Cells(X, Col) = 0
End If
Next
Else
Range("I3") = vbNullString
End If
End Sub
 

br44

XLDnaute Impliqué
re bonjour a tous ,

Staple 1600 , après test il s'avère que le programme n'affiche des "0" que dans la colonne "i" au lieu de la colonnes en court , j'avoue que je suis perplexe sur la cause de cette affichage .
Si tu me 'explique quoi modifié je le ferais .
te remerciant par avance du coup de main je te dit à plus .Amicalement Br44
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

br44
Comment peut-il y a voir une colonne "i" puisque dans mon code du message#10, il n'y aucune variable nommée i ...:rolleyes:

Je remets mon code avec des commentaires
Donc si par exemple, tu sélectionnes la cellule D8 et que tu cliques sur le bouton,
les zéros se mettront dans la colonne D
Si tu sélectionnes la colonne Q8, les zéros se mettront dans la colonne Q
VB:
Private Sub CommandButton1_Click()
'Déclaration variable
Dim Col as Long
Application.ScreenUpdating = False
Col=Activecell.Column' numéro de colonne de la cellule active
If Me.CheckBox1.Value Then
Range("I3").Value = "OK"
For X = 8 To 45' la boucle opére sur la colonne représentée par Col
If Len(Cells(X, Col)) = 0 Then
Cells(X, Col) = 0
End If
Next
Else
Range("I3") = vbNullString
End If
End Sub
 

br44

XLDnaute Impliqué
bonsoir staple 1600, le forum

je suis d'accord avec toi sur le fait que tu n'as de variable "i" dans ton code d'où ma surprise . donc je re teste et te tien au courant .

juste une question si j'ai bien compris le code c'est a moi de sélectionné la colonne de destination . mais est-il possible qui se base sur la dernière colonne active et non sur la cellules .active car si elle est pleine il y a risque de non exécution non?

te tout façon je te tien au courant et te remercie pour ton aide .Amicalement BR44
 

br44

XLDnaute Impliqué
re tous le monde , staple 1600

bon après essais le problème ne viens as de ton code a la base mais sont intégration dans ma procédure .

oui il faudrait remplacé " Col=Activcell.column " par " col =trouve les cellules vides des dernière colonne pleine " pour l'affecté au bonne endroit . mais voilà comment traduire cela en vba .

en te remerciant par avance . Amicalement Br44
 

Discussions similaires

Réponses
2
Affichages
140
Réponses
0
Affichages
137

Statistiques des forums

Discussions
312 104
Messages
2 085 339
Membres
102 865
dernier inscrit
FreyaSalander