IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème sur une fonction logique


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Bonjour, voici mon code j'espère que vous reussirez a comprendre :

    je vous explique un peu ce que je souhaite même si c'est écrit dans le code.

    J'ai deux userform qui doivent être liée lors de la saisie d'information.

    ce que je souhaite c'est une formule logique qui me dise :

    si la liste des lettre jaune n'est pas selectionné alors
    Ecris les données à la suite tant que la ligne est en blanc
    sinon cherche la valeur de lettrejaune ( c'est une listbox) et copie l'ensemble (tout le reste des intitulés filières, pilote etc... dans laquelle se trouve la lettre jaune)

    Merci voici le code de la userform 1 où sont saisies les premières données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Private Sub CommandButton2_Click()
     
    'bouton copier
    If TextBox3 = "" Or TextBox2 = "" Or TextBox1 = "" Then
     
    MsgBox "veuillez saisir tout les champs"
    End If
     
     
     
    'Ecris les données à la suite tant que la ligne est en blanc
    Dim i As String
    i = 3
    Do While (Sheets(1).Cells(i, 2) <> "") And (i <= 2000)
    i = i + 1
    Loop
     
    Sheets(1).Cells(i, 2) = TextBox1.Text
    Sheets(1).Cells(i, 3) = TextBox2.Text
    Sheets(1).Cells(i, 4) = TextBox3.Text
    Sheets(1).Cells(i, 8) = ListBox1.Value
     
     
     
     
    MsgBox "Les données sont copiées"
     
    If MsgBox("Voulez vous saisir une nouvelle lettre ?", vbYesNo, "Demande de confirmation") = vbYes Then
      'efface à nouveau le contenu
            TextBox1 = ""
            TextBox2 = ""
            TextBox3 = ""
            Else
            Unload UserForm1
        End If
     
     
     
    End Sub
     
    Private Sub CommandButton3_Click()
    'bouton exit
    Unload UserForm1
    End Sub
     
    Private Sub Label1_Click()
     
    End Sub
     
    Private Sub TextBox1_()
    'saisie de la date du calendrier
    End Sub
     
    Private Sub ListBox1_Click()
    'Destinataires
     
    End Sub
     
    Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    'appel de la procédure click sur textbox1
    Call UserForm2.Show
    End Sub
     
    Private Sub TextBox2_Change()
    'inscription de la référence de la lettre jaune
    End Sub
     
     
     
     
     
    Private Sub UserForm_Initialize()
    'appel à la liste
    ListBox1.ColumnHeads = True
    ListBox1.RowSource = "feuil3!b3:b19"
     
    End Sub
    code userform3 ( c'est la où existe le problème)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    Private Sub CommandButton2_Click()
    'bouton copier
     
    'si la liste des lettre jaune n'est pas selectionné alors
    'Ecris les données à la suite tant que la ligne est en blanc
    'sinon cherche la valeur de lettrejaune et copie l'ensemble dans laquelle se trouve
    'la lettre jaune
     
    Dim i As String
    i = 3
    Do While (Sheets(1).Cells(i, 2) <> "") And (i <= 2000)
    i = i + 1
    Loop
     
    Sheets(1).Cells(i, 5) = FILIERES.Value
    Sheets(1).Cells(i, 6) = TYPEACTION.Value
    Sheets(1).Cells(i, 7) = Libelleaction.Text
    Sheets(1).Cells(i, 9) = PILOTE.Value
    Sheets(1).Cells(i, 10) = COPILOTE.Value
    Sheets(1).Cells(i, 11) = SUPPORT.Value
    Sheets(1).Cells(i, 12) = commentaire.Text
    Sheets(1).Cells(i, 18) = COPILOTE.Value
     
     
    MsgBox "les données se sont copiées"
     
    If MsgBox("Voulez vous saisir une nouvelle action ?", vbYesNo, "Demande de confirmation") = vbYes Then
      'efface à nouveau le contenu
     
    FILIERES = ""
    TYPEACTION = ""
    PILOTE = ""
    COPILOTE = ""
    SUPPORT = ""
    LETTREJAUNE = ""
    COMITE = ""
    Libelleaction = ""
    commentaire = ""
     
        Else
             Unload UserForm3
     
    End If
     
     
    End Sub
     
    Private Sub CommandButton3_Click()
    'bouton annuler
    FILIERES = ""
    TYPEACTION = ""
    PILOTE = ""
    COPILOTE = ""
    SUPPORT = ""
    LETTREJAUNE = ""
    COMITE = ""
    Libelleaction = ""
    commentaire = ""
     
    End Sub
     
    Private Sub CommandButton4_Click()
    Unload UserForm3
    End Sub
     
     
     
    Private Sub Label1_Click()
     
    End Sub
     
    Private Sub Label8_Click()
     
    End Sub
     
     
     
     
    Private Sub UserForm_Initialize()
    FILIERES.ColumnHeads = True
    TYPEACTION.ColumnHeads = True
    PILOTE.ColumnHeads = True
    COPILOTE.ColumnHeads = True
    SUPPORT.ColumnHeads = True
    LETTREJAUNE.ColumnHeads = True
    COMITE.ColumnHeads = True
     
    FILIERES.RowSource = "feuil3!f3:f19"
    TYPEACTION.RowSource = "feuil3!e3:e19"
    PILOTE.RowSource = "feuil3!c3:c19"
    COPILOTE.RowSource = "feuil3!d3:d19"
    SUPPORT.RowSource = "feuil3!h3:h19"
    LETTREJAUNE.RowSource = "feuil2!d3:d2000"
    COMITE.RowSource = "feuil3!g3:g19"
     
     
    End Sub
    Voila si jamais vous voyez autre chose qui serait utilse de mettre je suis à votre écoute merci.

    pour des question de confidentialiter j'ai enlever les logos

    voici le fichier pour comprendre au mieu
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/09/2014, 22h52
  2. problème sur une Fonction récursive
    Par bernie74 dans le forum Développement
    Réponses: 4
    Dernier message: 21/11/2011, 12h45
  3. probléme sur une fonction
    Par titeufdev dans le forum PL/SQL
    Réponses: 3
    Dernier message: 11/01/2011, 09h36
  4. [String]Problème sur une fonction de récurrence
    Par hibou107 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 13/04/2010, 15h53
  5. [PostgreSQL] [PostGreSQL] problème sur une fonction avec connexion
    Par roblescriso dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/06/2008, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo