Cellule Vide

Bonjour

Je pense bloqué sur une macro assez simple mais je n'arrive pas a faire en sorte de renvoyer un message d'erreur si une cellule est vide sur une ligne déjà commencée ^^

Car il faut que tout les champs de la ligne soient remplis pour que mon projet fonctionne donc je voudrais que l'on oblige l'utilisateur a remplir la totalité des champs une fois qu'il a commencé a remplir une ligne

9exemple.xlsx (10.33 Ko)

bonjour

mettre une colonne "de contrôle" qui contient

= SI(A2="";"Saisie incomplète"";"")

tu peux :

  • complexifier le SI pour intégrer plusieurs cellules à contrôler
  • mettre la colonne de contrôle en caractères rouges
  • créer une cellule de contrôle général = SI (uneseulecelluledecolonnedecontrole <>"";"problème de saisie" ; "")

Salut jmd

Qu'entends tu par colonne de contrôle ?

Car moi en fait c'est un bouton qui va vérifier si les lignes ont été correctement remplies ( en fait il sera fusionner avec un autre qui exportera la feuille Excel en fichier CSV , du coup les deux macro seront lié genre l'utilisateur appuie sur le bouton d'export BIM la macro de vérification des lignes se lance si tout est nickel alors l'export se fait sinon BOUM messageBox disant qu'il reste des champs à remplir.

Tu vois ce que je veux dire ou pas :$ ?

re

oui, je vois

mais il ne faut pas faire comme ça. Trop complexe et dans 6 mois il y aura des pb (avec VBA c'est comme ça)

pour importer et/ou fusionner des données (xls, xlsx ou txt ou csv etc... faire menu Données/récupérer

et ensuite les utilisateurs ne font que "actualiser". C'est automatique.

Microsoft améliore sans cesse cette fonction.

pourquoi exporter en csv ?

Le CSV car tout le travail que je fais sur EXCEL ne sert en fait qu'a préparer les données en vue de les injecter dans une application qui prend du CSV comme modèle d'import ^^

Ok du coup je laisse tomber l'idée de la macro mais je ne vois pas comment faire pour les avertir qu'ils n'ont pas tout saisie sur les lignes alors

Bonjour toutes et tous

coucou Jmd

@Paul_Fabre

J'ai pensé en mettant uniquement à l'ouverture du classeur l'userform1 s'affiche, si textbox vide etc

non ?

bien entendu l'usf n'est pas fini, si oui à voir

ci-joint

crdlt,

André

ztesttextbox

Salut Andre

Le soucis c'est que je ne peux pas utiliser ce format car j'ai besoin d'un format excel classique pour que ma macro export CSV fonctionne

car regarde mon code pour le CSV ressemble a ca et ne prend pas en compte un Userform

Sub MaJData()

Dim Fe As Worksheet
    Dim Plage As Range
    Dim Cel As Range
    Dim Tbl() As String
    Dim Ligne As String
    Dim Dossier As String
    Dim chemin As String
    Dim Fichier As String
    Dim i As Long
    Dim j As Long

    Dossier = "C:\temp\" '<--- chemin à adapter !

    'nom du fichier avec la date du jour
    Fichier = "Ajout_Référence_ISA" & " " & Format(Now, "dd-mm-yyyy") & ".csv"

    'full path
    chemin = Dossier & Fichier

    'si clic sur "Non", fin du programme
    If MsgBox("Voulez-vous créer le fichier '" & Fichier & "' qui sera stocké dans le dossier '" & Dossier & "'?", vbQuestion + vbYesNo, "Fichier .CSV") = vbNo Then Exit Sub

    'adapter le nom de la feuille à exporter
    Set Fe = Worksheets("REFERENCES")

    'défini la plage sur toute la feuille à exporter
    Set Plage = DefPlage(Fe, 1, 1)

    'crée les lignes pour les enregistrements tabulés avec comme séparateur ";"
    For i = 1 To Plage.Rows.Count

        For j = 1 To Plage.Columns.Count: Ligne = Ligne & Plage(i, j).Value & ";": Next j

        'supprime le "," de fin
        Ligne = Left(Ligne, Len(Ligne) - 1)

        'stocke dans un tableau et met un ; a la place d'un emplacement vide dans le CSV ( Esthetique)
        ReDim Preserve Tbl(1 To i)
        Tbl(i) = Ligne

        'pour la suivante
        Ligne = ""

    Next i

    'création du fichier .csv
    Open chemin For Output As #1

        For i = 1 To UBound(Tbl): Print #1, Tbl(i): Next i

    Close #1

    'vérifie que le fichier est bien sur le disque sinon, message d'erreur
    If Dir(chemin) <> "" Then

        'message de confirmation
       MsgBox "Le fichier '" & Fichier & "' a bien été créé et enregistré dans le dossier '" & Dossier & "' !", vbInformation

    Else

        MsgBox "Une erreur c'est produite durant la création du fichier .csv !", vbExclamation

    End If

End Sub

Function DefPlage(Fe As Worksheet, L As Long, c As Long) As Range

    On Error GoTo fin

    With Fe

        Set DefPlage = .Range(.Cells(L, c), _
                       .Cells(.Cells.Find("*", .[A1], -4123, , _
                       1, 2).row, .Cells.Find("*", .[A1], -4123, , _
                       2, 2).Column))

    End With

    Exit Function

fin:

    Set DefPlage = Nothing

End Function
Rechercher des sujets similaires à "vide"