XL 2010 Remplissage d'un tableau sous 2 conditions dynamiquement

hsf

XLDnaute Nouveau
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
 

Pièces jointes

  • Classeur1.xlsm
    20.2 KB · Affichages: 11

hsf

XLDnaute Nouveau
Bonjour,

J'ai beau cherché comment écrire un code VBA de sauvegarde automatique, mais j'ai pas trouvé ce que je voulais. Je fais appel à vos connaissances pour bien m'aider à répondre mon besoin suivant :

- Dans la feuille 3 sur mon fichier j'ai un tableau qui se remplie automatiquement à chaque fois que je saisie les champs considérés (critère et valeur) (ça c'est déjà fait) pour modèle1 par exemple ici.

- je veux qu'une fois je clique sur le bouton enregistrer:
* la macro créee une feuille dont le nom est la cellule F2
* Copier coller avec mise en forme de l'intitulé
Test/Modèle1/Price
(Comme il est montré sur la feuille "Modèle1" avec le tableau sur la feuille créée.
* Continuer à copier coller le tableau mis à jour tant que le nom de la cellule F2 est toujours la même sur la même feuille créée toujours portant le même contenu de la cellule F2.
* Une fois le contenu de la cellule F2 change (par exemple Modèle2)
* Copier coller l'intitulé du tableau une seule fois avec le tableau mis à jour à chaque fois sur la feuille crééé "Modèle2"
* et ainsi de suite

Merci de trouver ci-joint le fichier.

Merci pour votre aide !
 

Pièces jointes

  • Classeur3.xlsx
    14.9 KB · Affichages: 6

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16