Remplir des champs à une date ultérieure VBA
wakafa
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
wakafa -
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
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
A voir également:
- Remplir des champs à une date ultérieure VBA
- Version ultérieure - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Publipostage date inversée ✓ - Forum Word
- Excel : Remplir une cellule en fonction d'une autre ✓ - Forum Excel
- Incompatibilité de type vba ✓ - Forum Programmation
9 réponses
Bonjour,
je n'ai pas vos donnees, a verifier:
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
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
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
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
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
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
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
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
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
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
ligde la ligne en erreur, vous aurez la ligne et le cellule qui provoque l'erreur