insérer 0 dans cellules ne recevant pas de données [Résolu]

kly2spy

XLDnaute Nouveau
Bonjour à tous....!!

Une nouvelle question pour laquelle je n'ai pu obtenir aucune solution (malgré les nombreux sujets sur les cellules vides):mad:
A chaque validation de l'userform, une nouvelle ligne se rajoute sur la feuille "donnée", mais toutes les cellules ne doivent pas forcément être remplies.
Mon soucis c'est que dans une même colonne,les cellules de la ligne suivante devant être remplies, ne le sont pas car le contenu atteint les cellules vides de la ligne précédente.
Ex : sur la ligne 1 je veux valider : NOM PRÉNOM
sur la ligne 2 je veux valider : MATRICULE NOM PRÉNOM
Lors de la validation le matricule se positionnera sur la ligne 1 car la cellule est vide.

QUESTION: serait il possible de faire en sorte que pour chacune des lignes rajoutées, les cellules restées vides soient automatiquement remplies d'un "0" ou "x" ?:confused:
 

Pièces jointes

  • Reel Userform kly.xlsm
    23.9 KB · Affichages: 38
  • Reel Userform kly.xlsm
    23.9 KB · Affichages: 40
  • Reel Userform kly.xlsm
    23.9 KB · Affichages: 47
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : insérer 0 dans cellules ne recevant pas de données

Bonjour kly,


avec ce code:
Code:
Private Sub cmdOK_Click()

' Conversion du nom et prénom en NOMPRPRE

    'Matriculeconverti = Application.WorksheetFunction.Proper(Me.txtMatricule)
    'Nomconverti = Application.WorksheetFunction.Proper(Me.txtNom)
    'Prenomconverti = Application.WorksheetFunction.Proper(Me.txtPrénom)

' Mise en place des valeurs saisies
derligne = Range("A65536").End(xlUp).Row + 1
    Worksheets("Donnees").Range("A" & derligne) = txtMatricule.Value
    Worksheets("Donnees").Range("B" & derligne) = txtNom.Value
    Worksheets("Donnees").Range("C" & derligne) = txtPrénom.Value
    

' On décharge le formulaire

    Unload Me
    
Exit Sub
End Sub

à+
Philippe
 

goldenboy

XLDnaute Occasionnel
Re : insérer 0 dans cellules ne recevant pas de données

Bonjour,

Trop rapide pour moi Philippe

Code:
Dim DLigne As Integer

DLigne = Worksheets("Donnees").Range("a65536").End(xlUp).Offset(1, 0).Row

    Worksheets("Donnees").Range("A" & DLigne).Value = txtMatricule.Value
    Worksheets("Donnees").Range("B" & DLigne).Value = txtNom.Value
    Worksheets("Donnees").Range("C" & DLigne).Value = txtPrénom.Value

Attention tout de même, car si une ligne est entrée sans matricule, la prochaine ligne entrée effacera celle qui n'avait pas de matricule.
Il faut donc forcer l'utilisateur à inscrire une donnée dans le matricule.

Sous réserve que le matricule reste en colonne A.

Cordialement.
 

goldenboy

XLDnaute Occasionnel
Re : insérer 0 dans cellules ne recevant pas de données

Bonjour,

Ci joint le fichier avec le code qui va bien.

L'utilisateur n'est plus obligé de remplir tous les champs, ni même le matricule.

Cordialement,
 

Pièces jointes

  • Reel Userform kly.xlsm
    22 KB · Affichages: 48
  • Reel Userform kly.xlsm
    22 KB · Affichages: 47
  • Reel Userform kly.xlsm
    22 KB · Affichages: 75

kly2spy

XLDnaute Nouveau
Re : insérer 0 dans cellules ne recevant pas de données

excellent Goldenboy.....!! c'est deja une bonnne avancée:eek: et je t'en remercie.
Toutefois, cela voudrait il dire qu'il n'est pas possible de remplacer les cellules vides par une valeur par défaut, sur cette ligne ?

merci encore pour votre aide. :)

cordialement,
 

goldenboy

XLDnaute Occasionnel
Re : insérer 0 dans cellules ne recevant pas de données

Voici une solution

Code:
Private Sub cmdOK_Click()

' Conversion du nom et prénom en NOMPRPRE

    'Matriculeconverti = Application.WorksheetFunction.Proper(Me.txtMatricule)
    'Nomconverti = Application.WorksheetFunction.Proper(Me.txtNom)
    'Prenomconverti = Application.WorksheetFunction.Proper(Me.txtPrénom)

' Mise en place des valeurs saisies
Dim DLigne1 As Integer
Dim DLigne2  As Integer
Dim DLigne3  As Integer
Dim DLigne_la_plus_grande As Integer

DLigne1 = Worksheets("Donnees").Range("A65536").End(xlUp).Row + 1
DLigne2 = Worksheets("Donnees").Range("B65536").End(xlUp).Row + 1
DLigne3 = Worksheets("Donnees").Range("C65536").End(xlUp).Row + 1
With Sheets("derniere ligne")
    .Range("a1") = DLigne1
    .Range("a2") = DLigne2
    .Range("a3") = DLigne3
End With

DLigne_la_plus_grande = Sheets("derniere ligne").Range("a4").Value
    If txtMatricule.Value = "" Then
    txtMatricule.Value = "x"
    End If
    If txtNom.Value = "" Then
    txtNom.Value = "x"
    End If
    If txtPrénom.Value = "" Then
    txtPrénom.Value = "x"
    End If
    
    Worksheets("Donnees").Range("A" & DLigne_la_plus_grande).Value = txtMatricule.Value
    Worksheets("Donnees").Range("B" & DLigne_la_plus_grande).Value = txtNom.Value
    Worksheets("Donnees").Range("C" & DLigne_la_plus_grande).Value = txtPrénom.Value
    

' On décharge le formulaire

    Unload Me
    
Exit Sub
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : insérer 0 dans cellules ne recevant pas de données

bonjour tous :)

voit pas bien la demarche mais bon!!!!! code brut

Code:
 Private Sub cmdOK_Click()
 x = Cells.Find("*", , , , , xlPrevious).Row + 1
 Cells(x, 1) = IIf(txtMatricule = "", 0, txtMatricule.Value)
 Cells(x, 2) = IIf(txtNom = "", 0, txtNom.Value)
 Cells(x, 3) = IIf(txtPrénom = "", 0, txtPrénom.Value)
End Sub
 

Discussions similaires

Réponses
5
Affichages
316

Statistiques des forums

Discussions
312 217
Messages
2 086 352
Membres
103 195
dernier inscrit
martel.jg