Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Mettre une alerte si la textbox n'est pas remplie

alain.pierrephie

XLDnaute Occasionnel
Bonjour au forum.
Je galère et essayé mille choses depuis deux jours et de guerre lasse je viens vers vous pour une aide qui vous semblera certainement facile mais qui m’ôtera une épine du pied.
J'explique:
J'ai cela ci joint qui va remplir une feuille et j'aimerai que si la personne ne remplie pas celle que je vous aie isolée c'est a dire la date afin d'éviter le débogage, il puisse y avoir un message du style "Veuillez remplir la date de consultation";
j'ai créé un label mais a chaque fois que je teste avec oubli de remplir la date j'ai bien mon alerte dans le label mais il y a aussi le débogage.
Si une bonne âme pouvais voir cela.
Merci à vous tous
Alain

-----------------------------------------O----------------------------------------------------


Private Sub Ajout_Click()
With Sheets("SAUVEGARDE")
'ActiveSheet.Unprotect ("5158")
fin = .Range("b" & .Rows.Count).End(xlUp).Row
.Range("B" & fin + 1) = nom.Value



.Range("C" & fin + 1) = CDate(DateConsultation.Value) ----> ALERTE SUR CET FORMULE



.Range("D" & fin + 1) = prenom.Value
.Range("F" & fin + 1) = telephone.Value
.Range("G" & fin + 1) = mail.Value
.Range("H" & fin + 1) = adresse.Value
.Range("I" & fin + 1) = designation1.Value
.Range("J" & fin + 1) = montant1.Value
.Range("K" & fin + 1) = designation2.Value
.Range("L" & fin + 1) = montant2.Value
.Range("M" & fin + 1) = designation3.Value
.Range("N" & fin + 1) = montant3.Value

With Sheets("devis")

.Range("j16") = CDate(DateConsultation.Value)

'validation puis aller dans la feuille devis
Sheets("devis").Activate

'ActiveSheet.Protect Password:="5158"

Unload Me

End With
End With
End Sub
 

patricktoulon

XLDnaute Barbatruc
non pas du tout
je suis un parfait autodidacte
j'aime les choses carrés c'est presque une obsession

je viens de teste le userform pointageReglement et je n'ai pas d'erreur
je le met en option explicit


met ce code au complet a la place de celui qui y est dans le userform pointageReglement
VB:
Option Explicit
Dim R As Range
Private Sub liste_Click()
Set R = Range("tsauvegardeF").ListObject.ListRows(liste.ListIndex + 1).Range
End Sub

Private Sub modeP_Change()
If R.Cells(14) <> "" Then MsgBox " cette facture a déjà été pointée": Exit Sub
R.Cells(14) = modeP
Range("pointagereglement").ListObject.ListRows(liste.ListIndex + 1).Range(1) = Date
End Sub

Private Sub UserForm_Activate()
  Dim t
  t = Range("tSauvegardeF").Value
    With Me.liste
        .ColumnCount = 10    ' UBound(t, 2)
        .ColumnWidths = "70;70;70;70;0;0;0;0;0;0;0;0;0"
        If UBound(t) = 1 Then liste.Column = Application.Transpose(t) Else liste.List = t
    End With
modeP.List = Array("Espece", "Cheque", "Carte bleue")
End Sub
 

alain.pierrephie

XLDnaute Occasionnel
ok je m'y met
 

patricktoulon

XLDnaute Barbatruc
ça y est tu a changé le code ???
ben maintenant change celui de imprimdocument au complet pour celui ci
je viens de tester on est bon j'avais meme oublier la bascule devis/facture avec la variable "F"
Code:
Option Explicit

Public mode As String
Public document As String


Private Sub UserForm_Activate()
    Dim rname$, t
    If document = "facture" Then rname = "tsauvegardeF" Else rname = "tsauvegardeD"
    If mode = "pdf" Then
        BtImprim.Caption = "en pdf"
        Titre.Caption = "faire un PDF " & document
    Else
        Titre.Caption = "ré Imprimer " & document
        BtImprim.Caption = "Imprimmer"
    End If
    t = Range(rname).Value
    With Me.liste
        .ColumnCount = 10 ' UBound(t, 2)
        .ColumnWidths = "70;70;70;70;0;0;0;0;0;0;0;0;0"
        If UBound(t) = 1 Then liste.Column = Application.Transpose(t) Else liste.List = t
    End With
End Sub

Private Sub BtClose_Click(): Unload Me: End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
clearPageDevis
ClearPageFacture
End Sub

Private Sub BtImprim_Click()
    Dim t, plage As Range, col, cel As Range, F As Worksheet, I&
    With liste
        If .ListIndex = -1 Then Exit Sub
        t = Application.Index(.List, .ListIndex + 1, 0)
    End With
    If document = "devis" Then Set F = Feuil3 Else Set F = Feuil4
    Set plage = F.[H3,K7,L10,j13,j16,A21,M21,A22,M22,A23,M23]
    col = Array(0, 4, 1, 3, 7, 2, 8, 9, 10, 11, 12, 13)
    For Each cel In plage
        I = I + 1
        If LCase(Replace(t(col(I)), "€", "")) Like "*[A-z|/]*" Or t(col(I)) = "" Then cel.Value = CStr(t(col(I))) Else cel = CDbl(t(col(I)))
    Next
    Feuil3.Calculate
    Feuil4.Calculate
     If mode <> "pdf" Then
        F.PrintOut
       
     Else
        If document = "devis" Then createdevisPDF Else CreateFacturePDF
    End If
    mode = "": document = ""
End Sub
voila on devrait être bons là
 
Dernière édition:

alain.pierrephie

XLDnaute Occasionnel
Avant de faire une bétise:
dans pointage règlement j'en ai 3 je les écrase tous pour le remplacer par cet unique que tu m'as envoyé ?

Les 3 existants


Dim R As Range
Private Sub liste_Click()
Set R = Range("tsauvegardeF").ListObject.ListRows(liste.ListIndex + 1).Range
End Sub

Private Sub modeP_Change()
If R.Cells(14) <> "" Then MsgBox " cette facture a déjà été pointée": Exit Sub
R.Cells(14) = modeP
Range("pointagereglement").ListObject.ListRows(liste.ListIndex + 1).Range(1) = Date
End Sub

Private Sub UserForm_Activate()
t = Range("tSauvegardeF").Value
With Me.liste
.ColumnCount = 10 ' UBound(t, 2)
.ColumnWidths = "70;70;70;70;0;0;0;0;0;0;0;0;0"
If UBound(t) = 1 Then liste.Column = Application.Transpose(t) Else liste.List = t
End With
modeP.List = Array("Espece", "Cheque", "Carte bleue")
End Sub
 

alain.pierrephie

XLDnaute Occasionnel
Débogage ici
If R.Cells(14) <> "" Then MsgBox " cette facture a déjà été pointée": Exit Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…