Boucle pour équivalent d'une recherchev à deux critères
Fermé
Stess
-
30 avril 2014 à 17:56
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 6 mai 2014 à 15:46
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 6 mai 2014 à 15:46
A voir également:
- Boucle pour équivalent d'une recherchev à deux critères
- Equivalent coco - Accueil - Réseaux sociaux
- Equivalent wawacity - Accueil - Outils
- Équivalent coco - Accueil - Réseaux sociaux
- Deux ecran pc - Guide
- Equivalent word gratuit - Guide
2 réponses
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
54
Modifié par skk201 le 2/05/2014 à 16:59
Modifié par skk201 le 2/05/2014 à 16:59
Bonjour voilà qqchose qui pourrai marcher :
Il faut le mettre dans le code de la feuille concernée
et il faut que la 4 ème collonne ai un format date
Il peut y avoir un titre
Il ne doit pas y avoir de ligne vide dans la liste ! si non elle sera considéré comme la dernière ligne
Bonne journée :) // N'oubliez pas de mettre RESOLU !
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
Il faut le mettre dans le code de la feuille concernée
et il faut que la 4 ème collonne ai un format date
Il peut y avoir un titre
Il ne doit pas y avoir de ligne vide dans la liste ! si non elle sera considéré comme la dernière ligne
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 3 Then Exit Sub
If Target.Column = 3 Then 'S'execute s'il y a un changement dans la collonne "C"
Dim CTRL_A As String 'V : CTRL de la valeur de la colonne A
Dim CTRL_B As String 'V : CTRL de la valeur de la colonne B
Dim CL_A As String 'V : Nom du client à chercher
Dim PR_B As String 'V : Nom du produit à chercher
Dim Ligne As Integer 'V : Ligne en cours
Ligne = 2 'La ligne 2 est définie car la ligne 1 contient surement des titres
Dim Ligne_end As Integer 'V : N° de la dèrnière ligne
Dim Date_end As Long 'Valeur de la date en format nombre
CTRL_A = Cells(Ligne, 1).Value 'Initialisation de la valeur de CTRL avant la boucle
Do 'Cherche la valeur de la dèrnière ligne
Ligne = Ligne + 1
CTRL_A = Cells(Ligne, 1).Value
Loop While CTRL_A <> ""
Ligne_end = Ligne - 1 'sauvegarde la dernière ligne
Ligne = 2 ' Réinitialise la valeur de la ligne
CL_A = Cells(Ligne_end, 1).Value 'sauvegarde le client
PR_B = Cells(Ligne_end, 2).Value 'sauvegarde le produit
CTRL_A = Cells(Ligne, 1).Value 'Initialisation des valeur pour la boucle
CTRL_B = Cells(Ligne, 2).Value
Do While Ligne <> Ligne_end
If CTRL_A = CL_A Then
If CTRL_B = PR_B Then
Date_end = Cells(Ligne, 3).Value 'Sauvegarde de la valeur date
End If
End If
Ligne = Ligne + 1
CTRL_A = Cells(Ligne, 1).Value
CTRL_B = Cells(Ligne, 2).Value
Loop
Cells(Ligne_end, 4) = Date_end
End If
End Sub
Bonne journée :) // N'oubliez pas de mettre RESOLU !
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
Bonjour skk201,
Merci beaucoup d'avoir pris le temps de vous pencher sur ma demande, c'est vraiment agréable de pouvoir compter sur les membres du forum et de se sentir aidée!
En adaptant le code à la réalité de mon fichier, j'ai quelques questions et erreurs à lever. Excusez moi par avance, pour le niveau des questions, je débute en vba...
1. Quand on inscrit le code directement dans une feuille en tant que Private Sub, il s'éxecute directement ? ici à chaque changement sur la feuille ?
2. Ma date de commande dans mon fichier complet est en colonne 21, je dois bien remplacer 3 par 21 dans le code ci-dessous ?
If Target.Count > 3 Then Exit Sub
If Target.Column = 3 Then
Par avance, merci pour votre accompagnement!
Bonne journée à vous
Stess
Merci beaucoup d'avoir pris le temps de vous pencher sur ma demande, c'est vraiment agréable de pouvoir compter sur les membres du forum et de se sentir aidée!
En adaptant le code à la réalité de mon fichier, j'ai quelques questions et erreurs à lever. Excusez moi par avance, pour le niveau des questions, je débute en vba...
1. Quand on inscrit le code directement dans une feuille en tant que Private Sub, il s'éxecute directement ? ici à chaque changement sur la feuille ?
2. Ma date de commande dans mon fichier complet est en colonne 21, je dois bien remplacer 3 par 21 dans le code ci-dessous ?
If Target.Count > 3 Then Exit Sub
If Target.Column = 3 Then
Par avance, merci pour votre accompagnement!
Bonne journée à vous
Stess
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
54
6 mai 2014 à 15:46
6 mai 2014 à 15:46
Oui Le code s'execute si il y a un changement dans la collonne 3 (La nouvele date de la commande)
D'ou le :
Dans l'idée c'était que les infos soient renplies les unes après les autres. et que donc la colonne 3 soit la dernière. Une fois que la dernière info a été transcrite, elle allait chercher l'info a ajouter dans la collonne 4.
Le numér afficher indique quand il faut aller chercher la date de l'enregistrement en question. à vous d'adapter en fonction de votre document.
Si vous avez des questions n'hésitez pas :)
D'ou le :
If Target.column = then
Dans l'idée c'était que les infos soient renplies les unes après les autres. et que donc la colonne 3 soit la dernière. Une fois que la dernière info a été transcrite, elle allait chercher l'info a ajouter dans la collonne 4.
Le numér afficher indique quand il faut aller chercher la date de l'enregistrement en question. à vous d'adapter en fonction de votre document.
Si vous avez des questions n'hésitez pas :)