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 :

Erreur dans le code [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Par défaut Erreur dans le code
    Bonjour, alors j'essai de renseigner des cellules avec des valeurs selon des conditions. Grâce à une aide j'ai reussi à adapter le code à ce que je veux, juste que je n'arrive pas à loger le montant que je renseigne dans la bonne cellule. Voici le code et je joint le fichier pour meilleur comprehension

    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
    
    
    
    Private Sub CommandButton1_Click()
    End
    End Sub
    
    Private Sub CommandButton2_Click()
    Dim X As String
    Dim I As Long
    X = UserForm1.ComboBox1.Value
    If ComboBox1.Value = "" Or ComboBox2.Value = "" Or TextBox1.Value = "" Or TextBox2.Value = "" Then
    MsgBox ("Veuillez remplir tous les champs pour continuer")
    Exit Sub
    End If
    If MsgBox("Etes-vous certain de vouloir enregistrer ces nouveaux données ?", vbYesNo + vbInformation, "Demande de confirmation") = vbYes Then
    With Sheets(X)
    I = Sheets(X).Range("A:A").Find(TextBox1.Value).Row
    If ComboBox2.Value = "Especes" Then .Range("E" & I ).Value = CDbl(TextBox2.Value)
    If ComboBox2.Value = "Virement" Then .Range("F" & I ).Value = CDbl(TextBox2.Value)
    If ComboBox2.Value = "Carte Bancaire" Then .Range("G" & I ).Value = CDbl(TextBox2.Value)
    End With
    End If
    ComboBox1.Value = ""
    ComboBox2.Value = ""
    TextBox1.Value = ""
    TextBox2.Value = ""
    
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim Ws As Worksheet
    ComboBox1.Clear
        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name <> "TB" Then
                ComboBox1.AddItem Ws.Name
            End If
        Next Ws
        
    Dim Plage As String
    With Sheets("TB")
        Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Address
    End With
    ComboBox2.RowSource = "TB!" & Plage
    
    TextBox1.Value = Now()
    TextBox1.Value = Format(TextBox1.Value, "dd/mm/yyyy")
    
    End Sub
    Je pense que l'erreur vient de la partie en jaune
    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    I = Sheets(X).Range("A:A").Find(Val(TextBox1)).Row
    pour une date existante, mais si la date n'existe pas ?, je pense qu'il faut passer I en range "Dim I as Range" donc "Set I = ....."
    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
    Private Sub CommandButton2_Click()
    Dim X, C As String
    Dim I As Range
    X = UserForm1.ComboBox1.Value
    If ComboBox1.Value = "" Or ComboBox2.Value = "" Or TextBox1.Value = "" Or TextBox2.Value = "" Then
      MsgBox ("Veuillez remplir tous les champs pour continuer")
      Exit Sub
    End If
    If MsgBox("Etes-vous certain de vouloir enregistrer ces nouveaux données ?", vbYesNo + vbInformation, "Demande de confirmation") = vbYes Then
      With Sheets(X)
        Set I = Sheets(X).Range("A:A").Find(Val(TextBox1))
        If Not I Is Nothing Then
          If ComboBox2.Value = "Especes" Then .Range("E" & I.Row & C).Value = CDbl(TextBox2.Value)
          If ComboBox2.Value = "Virement" Then .Range("F" & I.Row & C).Value = CDbl(TextBox2.Value)
          If ComboBox2.Value = "Carte Bancaire" Then .Range("G" & I.Row & C).Value = CDbl(TextBox2.Value)
          ComboBox1.Value = ""
          ComboBox2.Value = ""
          TextBox1.Value = ""
          TextBox2.Value = ""
        Else
          'ton traitement pour ajouter éventuellement la date
        End If
      End With
    End If
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Que se passera-t-il si tu as deux fois la même date dans un même onglet ?...


    Ton code modifié et simplifié :
    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
    Private Sub UserForm_Initialize()
    Dim Ws As Worksheet
     
    ComboBox1.Clear
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name <> "TB" Then
            ComboBox1.AddItem Ws.Name
        End If
    Next Ws
    With Sheets("TB")
        ComboBox2.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
    End With
    TextBox1.Value = Format(Date, "dd/mm/yyyy")
    End Sub
     
    Private Sub CommandButton2_Click()
    Dim O As Worksheet
    Dim LI As Long
    Dim DA As Range
     
    Set O = Sheets(Me.ComboBox1.Value)
    If ComboBox1.Value = "" Or ComboBox2.Value = "" Or TextBox1.Value = "" Or TextBox2.Value = "" Then
        MsgBox ("Veuillez remplir tous les champs pour continuer")
        Exit Sub
    End If
    If MsgBox("Etes-vous certain de vouloir enregistrer ces nouvelles données ?", vbYesNo + vbInformation, "Demande de confirmation") = vbYes Then
        Set DA = O.Range("A:A").Find(Date)
        If DA Is Nothing Then MsgBox "Date non trouvée !": Exit Sub
        LI = DA.Row
        O.Cells(LI, Me.ComboBox2.ListIndex + 5).Value = CDbl(TextBox2.Value)
    End If
    Unload Me
    UserForm1.Show
    End Sub
     
    Private Sub CommandButton1_Click()
    Unload Me
    End Sub

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Par défaut
    Casefayere, t'es merveilleux! C'est exactement ce dont j'avais besoin. Je vais juste y rajouter une erreur au cas où la date n'existe pas la table

    Merci mille fois!

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Merci mais tiens compte de la reflexion à Thautheme
    Que se passera-t-il si tu as deux fois la même date dans un même onglet ?...
    il faudra adapter
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Par défaut
    Oui j'ai commencé à analyser le code de Thauteme. Le truc c'est que mon tableau ne peut contenir deux fois la même date, mais c'est bon à savoir au cas où je rencontre un tel cas donc je vais y travailler.
    Encore merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vb.net] erreur dans un code
    Par lou87 dans le forum Windows Forms
    Réponses: 36
    Dernier message: 24/04/2006, 10h56
  2. erreur dans mon code
    Par sacco dans le forum C
    Réponses: 4
    Dernier message: 14/04/2006, 11h50
  3. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52
  4. Erreur dans du code
    Par claralavraie dans le forum ASP
    Réponses: 4
    Dernier message: 23/12/2005, 09h32
  5. [VBA] Erreur dans un code. Hierarchie DAO.
    Par snoopy69 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/10/2005, 22h28

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