Remplir des champs à une date ultérieure VBA

Fermé
wakafa Messages postés 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020 - Modifié par wakafa le 25/07/2015 à 02:37
 wakafa - 1 août 2015 à 22:49
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 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
25 juil. 2015 à 09:39
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 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
25 juil. 2015 à 11:15
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 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
Modifié par f894009 le 25/07/2015 à 11:30
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 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
25 juil. 2015 à 11:57
Re,
dans cette ligne: .Range("V" & Trouve.Row).Value = TextBox19.Text
0
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
25 juil. 2015 à 13:56
Re,

Ok, remplacez
Trouve.Row
par
 Lig 
. J'ai oublie de mettre a jour cette partie de code
0
wakafa Messages postés 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
25 juil. 2015 à 14:25
Re,
Merci beaucoup f894009, ça fonctionne très bien
0

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

Posez votre question
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 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
27 juil. 2015 à 15:34
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
Bonjour,
Merci infiniment f894009, c'est parfait (y)
0
wakafa Messages postés 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
31 juil. 2015 à 11:33
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 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
Modifié par f894009 le 31/07/2015 à 11:55
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 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
31 juil. 2015 à 13:38
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 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678 > wakafa Messages postés 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
31 juil. 2015 à 14:12
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 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
31 juil. 2015 à 14:16
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 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678 > wakafa Messages postés 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
31 juil. 2015 à 14:27
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 40 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 7 décembre 2020
31 juil. 2015 à 15:03
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