Bonjour,
Je vous sollicite aujourd'hui pour m'aider à écrire un code cohérent qui me permet de remplir un tableau sous deux conditions saisies par l'utilisateur.
J'ai déjà écrit un code mais ça fonctionne pas.
Mon objectif c'est ça :
- Les entrées
les deux champs "critere" et "valeur1" sont saisis par l'utilisateur
la cellule E3 est une liste contient :
valeur1 valeur2 valeur3
une fois je modifie le champs critere et le champ valeur et son contenu, et je clique sur le bouton la macro fais ça :
premier cas : champ valeur = valeur 1 ou bien valeur 2
si critere ( par exemple 10) est trouve dans la ligne 7
et la valeur par exemple ici 1 est dans la ligne 8 alors :
la cellule resultat1 = resultat 1 qui existe dans la feuille 1
la cellule resultat2 =resultat 1 qui existe dans la feuille 1
deuxième cas : champ valeur = valeur 1 ou bien valeur 3
si critere ( par exemple 10) est trouve dans la ligne 16
et la valeur par exemple ici 1 est dans la ligne 17 alors
la cellule resultat1 = resultat 1 qui existe dans la feuille 1
la cellule resultat2 =resultat 1 qui existe dans la feuille 1
bouton enregistrer je clique fais ca
et dans la feuille 4 enregiste le contenu de la feuille3 et une fois la feuille 3 est modifiée avec des nouvelles données elle enregistre ces modifications ci dessous de l'exemple test1
comme il est montre sur la feuille 4 et ainsi de suite
Voilà mon code :
Sub calculer()
Dim i As Integer
Dim critere As Integer
Dim valeur As Integer
Dim champs_valeur As String
Sheets("feuil3").Activate
critere = Sheets("feuil3").Range("F2").Value
valeur = Sheets("feuil3").Range("F3").Value
champs_valeur = Sheets("feuil3").Range("E3").Value
Select Case champs_valeur
Case champs_valeur = "valeur1" Or champs_valeur = "valeur2"
For i = 5 To 12
If Cells(10, i) = critere And Cells(11, i) = valeur Then
Sheets("feuil1").Activate
Range("E5").Select
Range("E6").Select
Selection.Copy
ActiveSheet.Cells(13, i).Selection
ActiveSheet.Cells(14, i).Selection
ActiveSheet.Paste
End If
Next i
Case champs_valeur = "valeur1" Or champs_valeur = "valeur3"
For i = 5 To 12
If Cells(19, i) = critere And Cells(20, i) = valeur Then
Sheets("feuil1").Activate
Range("E5").Select
Range("E6").Select
Selection.Copy
ActiveSheet.Cells(22, i).Selection
ActiveSheet.Cells(23, i).Selection
ActiveSheet.Paste
End If
Next i
End Select
End Sub
Merci de trouver ci-joint le fichier
N.B : les donnees sont fictives dans le cadre de la confidentialité
Merci d'avance pour votre collaboration
Je vous sollicite aujourd'hui pour m'aider à écrire un code cohérent qui me permet de remplir un tableau sous deux conditions saisies par l'utilisateur.
J'ai déjà écrit un code mais ça fonctionne pas.
Mon objectif c'est ça :
- Les entrées
les deux champs "critere" et "valeur1" sont saisis par l'utilisateur
la cellule E3 est une liste contient :
valeur1 valeur2 valeur3
une fois je modifie le champs critere et le champ valeur et son contenu, et je clique sur le bouton la macro fais ça :
premier cas : champ valeur = valeur 1 ou bien valeur 2
si critere ( par exemple 10) est trouve dans la ligne 7
et la valeur par exemple ici 1 est dans la ligne 8 alors :
la cellule resultat1 = resultat 1 qui existe dans la feuille 1
la cellule resultat2 =resultat 1 qui existe dans la feuille 1
deuxième cas : champ valeur = valeur 1 ou bien valeur 3
si critere ( par exemple 10) est trouve dans la ligne 16
et la valeur par exemple ici 1 est dans la ligne 17 alors
la cellule resultat1 = resultat 1 qui existe dans la feuille 1
la cellule resultat2 =resultat 1 qui existe dans la feuille 1
bouton enregistrer je clique fais ca
et dans la feuille 4 enregiste le contenu de la feuille3 et une fois la feuille 3 est modifiée avec des nouvelles données elle enregistre ces modifications ci dessous de l'exemple test1
comme il est montre sur la feuille 4 et ainsi de suite
Voilà mon code :
Sub calculer()
Dim i As Integer
Dim critere As Integer
Dim valeur As Integer
Dim champs_valeur As String
Sheets("feuil3").Activate
critere = Sheets("feuil3").Range("F2").Value
valeur = Sheets("feuil3").Range("F3").Value
champs_valeur = Sheets("feuil3").Range("E3").Value
Select Case champs_valeur
Case champs_valeur = "valeur1" Or champs_valeur = "valeur2"
For i = 5 To 12
If Cells(10, i) = critere And Cells(11, i) = valeur Then
Sheets("feuil1").Activate
Range("E5").Select
Range("E6").Select
Selection.Copy
ActiveSheet.Cells(13, i).Selection
ActiveSheet.Cells(14, i).Selection
ActiveSheet.Paste
End If
Next i
Case champs_valeur = "valeur1" Or champs_valeur = "valeur3"
For i = 5 To 12
If Cells(19, i) = critere And Cells(20, i) = valeur Then
Sheets("feuil1").Activate
Range("E5").Select
Range("E6").Select
Selection.Copy
ActiveSheet.Cells(22, i).Selection
ActiveSheet.Cells(23, i).Selection
ActiveSheet.Paste
End If
Next i
End Select
End Sub
Merci de trouver ci-joint le fichier
N.B : les donnees sont fictives dans le cadre de la confidentialité
Merci d'avance pour votre collaboration