Remplir des champs à une date ultérieure VBA

wakafa Messages postés 40 Statut Membre -  
 wakafa -
Bonjour,
Je veux ajouter des données dans les colonnes (U,V,W,X,Y,Z,AB,AC,AD,AE,AF) à une date ultérieur et ceci en se réféerant à la 1ere colonne(date) et la 2eme(Projet) : si textbox1.value=" date recherchée" et comcobox1.value="lettre recherchée" alors les données doivent être ajouter dans cette ligne
Voici le code utilisé, mais le problème c'est que les données ne s'ajoutent pas dans la ligne demandée. Il commence toujours l'ajout à partir de la 2eme ligne quelque soit les valeurs du textbox et du combobox
Private Sub CommandButton1_Click()
Dim U As Integer
If MsgBox("Etes vous sûr de vouloir ajouter ces informations?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Trouve As Range, PlageDeRecherche1 As Range, PlageDeRecherche2 As Range
Dim Valeur_Cherchee1 As String, Valeur_Cherchee2 As Date
Valeur_Cherchee1 = ISupp.ComboBox2.Value
Valeur_Cherchee2 = ISupp.TextBox29.Value
Set PlageDeRecherche1 = Sheets("Feuil2").Columns(2)
Set PlageDeRecherche2 = Sheets("Feuil2").Columns(1)

Set Trouve = PlageDeRecherche1.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
Set Trouve = PlageDeRecherche2.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
Feuil2.Range("V" & Trouve.Row).Value = TextBox19.Text
Feuil2.Range("W" & Trouve.Row).Value = TextBox20.Text
Feuil2.Range("X" & Trouve.Row).Value = TextBox21.Text
Feuil2.Range("Y" & Trouve.Row).Value = TextBox22.Text
Feuil2.Range("Z" & Trouve.Row).Value = TextBox23.Text
Feuil2.Range("AB" & Trouve.Row).Value = TextBox24.Text
Feuil2.Range("AC" & Trouve.Row).Value = TextBox25.Text
Feuil2.Range("AD" & Trouve.Row).Value = TextBox26.Text
Feuil2.Range("AE" & Trouve.Row).Value = TextBox27.Text
Feuil2.Range("AF" & Trouve.Row).Value = TextBox28.Text
Set PlageDeRecherche1 = Nothing
Set PlageDeRecherche2 = Nothing
Set Trouve = Nothing

End If
End Sub

9 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    je n'ai pas vos donnees, a verifier:
    Private Sub CommandButton1_Click()
    Dim U As Integer
    Dim Trouve As Range, PlageDeRecherche1 As Range
    Dim Valeur_Cherchee1 As String, Valeur_Cherchee2 As Date

    'ceci en se réféerant à la 1ere colonne(date) et la 2eme(Projet) :
    'textbox1.value=" date recherchée" et comcobox1.value="lettre recherchée"

    If MsgBox("Etes vous sûr de vouloir ajouter ces informations?", vbYesNo, "Demande de confirmation") = vbYes Then
    Valeur_Cherchee1 = ISupp.ComboBox2.Value 'colonne 2 B
    Valeur_Cherchee2 = ISupp.TextBox29.Value 'colonne 1 A
    With Sheets("Feuil2")
    'derniere cellule non vide colonne B
    derlig = .Range("B" & Rows.Count).End(xlUp).Row
    Set PlageDeRecherche1 = .Range("B1:B" & derlig)
    'nombre de fois la valeur trouvee colonne B
    Nb = Application.CountIf(PlageDeRecherche1, Valeur_Cherchee1)
    If Nb > 0 Then
    Lig = 1
    'boucle de recherche valeur 1
    For Point = 1 To Nb
    'ligne valeur 1
    Lig = .Columns(2).Find(Valeur_Cherchee1, .Cells(Lig, 2), , xlWhole).Row
    'test si valeur 2 meme ligne colonne A
    If .Cells(Lig, 2).Offset(, -1) = Valeur_Cherchee2 Then
    .Range("V" & Trouve.Row).Value = TextBox19.Text
    .Range("W" & Trouve.Row).Value = TextBox20.Text
    .Range("X" & Trouve.Row).Value = TextBox21.Text
    .Range("Y" & Trouve.Row).Value = TextBox22.Text
    .Range("Z" & Trouve.Row).Value = TextBox23.Text
    .Range("AB" & Trouve.Row).Value = TextBox24.Text
    .Range("AC" & Trouve.Row).Value = TextBox25.Text
    .Range("AD" & Trouve.Row).Value = TextBox26.Text
    .Range("AE" & Trouve.Row).Value = TextBox27.Text
    .Range("AF" & Trouve.Row).Value = TextBox28.Text
    Set PlageDeRecherche1 = Nothing
    Exit For
    End If
    Next Point
    End If
    End With
    End If
    End Sub
    0
  2. wakafa Messages postés 40 Statut Membre
     
    Bonjour ,
    f894009 j'ai vérifier votre réponse, elle me parrait correcte mais en l'exécutant il me renvoie le message suivant:" variable objet ou variable de bloc With non définie"
    je sais pas d'ou vient le problème
    Merci f894009
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      A quelle ligne svp ??? Je viens de faire un test avec des donnees, pas d'erreur. Avec votre fichier, je pourrai corriger s'il y a lieu
      0
  3. wakafa Messages postés 40 Statut Membre
     
    Re,
    dans cette ligne: .Range("V" & Trouve.Row).Value = TextBox19.Text
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Ok, remplacez
      Trouve.Row
      par
       Lig 
      . J'ai oublie de mettre a jour cette partie de code
      0
  4. wakafa Messages postés 40 Statut Membre
     
    Re,
    Merci beaucoup f894009, ça fonctionne très bien
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. wakafa
     
    Bnojour f894009,

    Bon j'ai rencontré un autre problème, j'ai déja posté sur le forum mais j'ai pas eu de réponse en fait je veux faire la somme d'une colonne sous une condition: si le nom de projet dans la 2éme colonne =combobox2.value alors je dois sommer sur toutes les valeurs correspondantes à ce projet(un projet peut se répéter plusieurs fois) et ces valeurs se trouvent dans la colonne V et je dois afficher la somme dans textbox1
    j'ai essayé le code sous-dessous mais malheureusement ça marche pas,il me donne toujours une somme nulle!!
    Merci beaucoup f894009 j'en ai vraiment besoin de votre aide
    code:
    Private Sub ComboBox2_Change()
    Dim PlageDeRecherche As Range, sum As Double
    Dim i As Integer, j As Integer
    Dim Valeur_Cherchee As String
    Valeur_Cherchee = InfosP.ComboBox2.Value
    With Sheets("Feuil2")
    'derniere cellule non vide colonne B
    derlig = .Range("B" & Rows.Count).End(xlUp).Row
    Set PlageDeRecherche = .Range("B1:B" & derlig)
    'nombre de fois la valeur trouvee colonne B
    Nb = Application.CountIf(PlageDeRecherche, Valeur_Cherchee)
    If Nb > 0 Then
    lig = 1
    'boucle de recherche valeur 1
    For Point = 1 To Nb
    'ligne valeur 1
    lig = .Columns(2).Find(Valeur_Cherchee, .Cells(lig, 2), , xlWhole).Row
    Next
    'test si valeur 2 meme ligne colonne A
    sum = .Cells(lig, 2).Offset(0, 19).Value
    For i = lig + 1 To 330
    sum = sum + .Cells(lig, 2).Offset(0, 19).Value
    TextBox1.Value = sum
    Next
    End If
    End With
    End Sub
    0
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Private Sub ComboBox2_Change()
        Dim PlageDeRecherche As Range, sum As Double
        Dim i As Integer, j As Integer
        Dim Valeur_Cherchee As String
        
        Valeur_Cherchee = ComboBox2.Value
        With Sheets("Feuil2")
            'derniere cellule non vide colonne B
            derlig = .Range("B" & Rows.Count).End(xlUp).Row
            Set PlageDeRecherche = .Range("B1:B" & derlig)
            'nombre de fois la valeur trouvee colonne B
            Nb = Application.CountIf(PlageDeRecherche, Valeur_Cherchee)
            If Nb > 0 Then
                lig = 1
                'boucle de recherche valeur 1
                For Point = 1 To Nb
                    'ligne valeur 1
                    lig = .Columns(2).Find(Valeur_Cherchee, .Cells(lig, "B"), , xlWhole).Row
                    'test si valeur 2 meme ligne colonne A
                    sum = sum + .Cells(lig, "V").Value
                Next Point
                TextBox1.Value = sum
            Else
                TextBox1 = "Pas trouvé !!!"
            End If
        End With
    End Sub
    
    0
  8. wakafa
     
    Bonjour,
    Merci infiniment f894009, c'est parfait (y)
    0
  9. wakafa Messages postés 40 Statut Membre
     
    Bonjour f894009,
    on fait je veux sommer sur plusieurs colonnes j'ai utilisé le code ci-dessous mais il me donne toujours qu'il y a une erreur d'incompatibilité de type et vu mon niveau j'arrive pas à détecter d'ou vient l'erreur
    code:
    Private Sub ComboBox2_Change()
    Dim PlageDeRecherche As Range, sum As Double
    Dim Valeur_Cherchee As String
    Valeur_Cherchee = ComboBox2.Value
    With Sheets("Feuil2")

    derlig = .Range("B" & Rows.Count).End(xlUp).Row
    Set PlageDeRecherche = .Range("B1:B" & derlig)

    Nb = Application.CountIf(PlageDeRecherche, Valeur_Cherchee)
    If Nb > 0 Then
    lig = 1
    'boucle de recherche valeur 1
    For Point = 1 To Nb

    lig = .Columns(2).Find(Valeur_Cherchee, .Cells(lig, "B"), , xlWhole).Row

    sum = sum + .Cells(lig, "G").Value
    a = a + .Cells(lig, "H").Value
    b = b + .Cells(lig, "I").Value
    c = c + .Cells(lig, "J").Value
    d = d + .Cells(lig, "K").Value
    e = e + .Cells(lig, "L").Value
    f = f + .Cells(lig, "M").Value
    g = g + .Cells(lig, "N").Value
    h = h + .Cells(lig, "O").Value
    i = i + .Cells(lig, "P").Value
    j = j + .Cells(lig, "Q").Value
    k = k + .Cells(lig, "R").Value
    ab = ab + .Cells(lig, "S").Value

    Next Point
    TextBox1.Value = sum
    TextBox2.Value = a
    TextBox3.Value = b
    TextBox4.Value = c
    TextBox5.Value = d
    TextBox6.Value = e
    TextBox7.Value = f
    TextBox8.Value = g
    TextBox9.Value = h
    TextBox10.Value = i
    TextBox11.Value = j
    TextBox12.Value = k
    TextBox13.Value = ab

    Else
    TextBox1.Value = 0
    TextBox2.Value = 0
    TextBox3.Value = 0
    TextBox4.Value = 0
    TextBox5.Value = 0
    TextBox6.Value = 0
    TextBox7.Value = 0
    TextBox8.Value = 0
    TextBox9.Value = 0
    TextBox10.Value = 0
    TextBox11.Value = 0
    TextBox12.Value = 0
    TextBox13.Value = 0
    End If
    End With

    End Sub
    désolé pour le dérangement et merci infiniment pour votre aide
    0
  10. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    désolé pour le dérangement Y a pas d'lezard

    Il n'y a pas de cellule(s) avec du texte au lieu de nombre(s) ????

    Quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur
    lig 
    de la ligne en erreur, vous aurez la ligne et le cellule qui provoque l'erreur
    0
    1. wakafa Messages postés 40 Statut Membre
       
      Malheureusement non :/ je me demande si je dois mettre dans excel dans Format de nombre Nombre au lieu de standard?
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > wakafa Messages postés 40 Statut Membre
       
      Re,

      Avez-vous eu l'erreur et fait ce que j'ai ecrit et pas seulement regarde de visu car un espace dans une cellule ne se voit pas ????????????????????
      0
    3. wakafa Messages postés 40 Statut Membre
       
      il me donne qu'il y a une erreur dans la ligne 13 mais j'arrive pas a savoir d'ou il vient exactement!!
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > wakafa Messages postés 40 Statut Membre
       
      Re,
      vous avez la ligne et la colonne, donc que voyez-vous????? Si rien cela peut etre un espace ou un cractere non visible
      0
    5. wakafa Messages postés 40 Statut Membre
       
      Re,
      Bn j'ai remarqué que pour des projets il y a des cases qui sont vides, en les remplaçant par des zéros le code ça marche, mais si ils sont pas vides le code ne marche plus donc je pense que je dois ajouter une condition si l'une des cases est vide?
      0