Remplir des champs à une date ultérieure VBA

wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -  
 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

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
dans cette ligne: .Range("V" & Trouve.Row).Value = TextBox19.Text
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Ok, remplacez
Trouve.Row
par
 Lig 
. J'ai oublie de mettre a jour cette partie de code
0
wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
Merci beaucoup f894009, ça fonctionne très bien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
wakafa
 
Bonjour,
Merci infiniment f894009, c'est parfait (y)
0
wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
Malheureusement non :/ je me demande si je dois mettre dans excel dans Format de nombre Nombre au lieu de standard?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
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
wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
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
wakafa Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
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