Macro boucle ou formule Excel ?
Résolu/Fermé
salykato13800
julia Namor
- Messages postés
- 11
- Date d'inscription
- mardi 31 janvier 2017
- Statut
- Membre
- Dernière intervention
- 6 avril 2017
julia Namor
- Messages postés
- 493
- Date d'inscription
- jeudi 27 mars 2014
- Statut
- Membre
- Dernière intervention
- 26 décembre 2020
A voir également:
- Macro boucle ou formule Excel ?
- Macro boucle ou formule Excel ? ✓ - Forum - Excel
- Insertion d'une formule Excel Via Macro ✓ - Forum - Programmation
- Macro formule Excel ✓ - Forum - Excel
- Formule excel, macro ✓ - Forum - Excel
- Excel: macro boucle menu deroulant et enregis ✓ - Forum - Excel
12 réponses
julia Namor
8 févr. 2017 à 19:59
- Messages postés
- 493
- Date d'inscription
- jeudi 27 mars 2014
- Statut
- Membre
- Dernière intervention
- 26 décembre 2020
8 févr. 2017 à 19:59
Je vous en prie.
Si tout ok pour vous .N'oubliez pas de mettre résolu.
Cordialement
Si tout ok pour vous .N'oubliez pas de mettre résolu.
Cordialement
DjiDji59430
7 févr. 2017 à 16:35
- Messages postés
- 3541
- Date d'inscription
- samedi 19 avril 2008
- Statut
- Membre
- Dernière intervention
- 22 mai 2022
7 févr. 2017 à 16:35
Bonjour ,
Quand on joint un fichier-test, (avec TOUTES les explications et les résultats souhaités) ou mieux, si c'est possible, le fichier concerné, c'est plus commode pour les intervenants.
Et tu as plus de chances que quelqu'un s’intéresse à ton problème
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes s'affiche le lien en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans la discussion, et, dans ton message de réponse, tu fais : "Coller".
Cordialement.
Quand on joint un fichier-test, (avec TOUTES les explications et les résultats souhaités) ou mieux, si c'est possible, le fichier concerné, c'est plus commode pour les intervenants.
Et tu as plus de chances que quelqu'un s’intéresse à ton problème
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes s'affiche le lien en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans la discussion, et, dans ton message de réponse, tu fais : "Coller".
Cordialement.
julia Namor
7 févr. 2017 à 16:36
- Messages postés
- 493
- Date d'inscription
- jeudi 27 mars 2014
- Statut
- Membre
- Dernière intervention
- 26 décembre 2020
7 févr. 2017 à 16:36
Bonjour
Peux tu nous joindre un fichier et je te fais ça.
Sur le site
https://www.cjoint.com/
Cordialement
Peux tu nous joindre un fichier et je te fais ça.
Sur le site
https://www.cjoint.com/
Cordialement
salykato13800
7 févr. 2017 à 17:09
- Messages postés
- 11
- Date d'inscription
- mardi 31 janvier 2017
- Statut
- Membre
- Dernière intervention
- 6 avril 2017
7 févr. 2017 à 17:09
Re-
Merci de vos réponses.
Désolé j'aurais dû penser à joindre le fichier.
C'est vrai que ce sera plus simple.
Le voici :
https://www.cjoint.com/c/GBhqgJwSPtO
En vous remerciant.
Merci de vos réponses.
Désolé j'aurais dû penser à joindre le fichier.
C'est vrai que ce sera plus simple.
Le voici :
https://www.cjoint.com/c/GBhqgJwSPtO
En vous remerciant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
julia Namor
7 févr. 2017 à 19:13
- Messages postés
- 493
- Date d'inscription
- jeudi 27 mars 2014
- Statut
- Membre
- Dernière intervention
- 26 décembre 2020
7 févr. 2017 à 19:13
Comme ça?
https://www.cjoint.com/c/GBhsmsDzy1y
https://www.cjoint.com/c/GBhsmsDzy1y
salykato13800
8 févr. 2017 à 10:48
- Messages postés
- 11
- Date d'inscription
- mardi 31 janvier 2017
- Statut
- Membre
- Dernière intervention
- 6 avril 2017
8 févr. 2017 à 10:48
Bonjour Julia,
Merci beaucoup pour votre travail.
Dans l'esprit c'est tout à fait ce qu'il me faut.
Par contre, j'ai regardé votre macro, et si j'ai bien compris (rien n'est moins sûr), la première ligne du tableau 1 est comparé avec les données du tableau 2 qui sont directement sur la même ligne ?
Ce que je souhaiterai pour être plus précis, c'est que chaque ligne du tableau 1 (avec comme critère le nom-prénom et date) soit testée sur chaque ligne du tableau 2.
Si le test effectué trouve un résultat positif, on pourrait mettre "OK" en colonne C de la ligne testée.
En revanche, si aucune occurrence n'est trouvée, on pourrait mettre "ANOMALIE".
J'ai essayé ça. Evidement ça ne marche pas.
Je vous laisse admirer mon piètre résultat. L'important est de participer disait Coubertin lol
Sub Bouton1_Clic()
Dim cell As Range
DL = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For Each cell In Sheets("feuil1").Range("A3:" & "A" & DL)
If cell.Offset(0, 1).Value < cell.Offset(0, 6).Value And cell.Offset(0, 1).Value > cell.Offset(0, 5).Value Then
cell(0, 3).Value = "OK"
Else
cell(0, 3).Value = "ANOMALIE"
End If
Next
End Sub
Je peux vous redemander de l'aide ? :-)
Merci beaucoup pour votre travail.
Dans l'esprit c'est tout à fait ce qu'il me faut.
Par contre, j'ai regardé votre macro, et si j'ai bien compris (rien n'est moins sûr), la première ligne du tableau 1 est comparé avec les données du tableau 2 qui sont directement sur la même ligne ?
Ce que je souhaiterai pour être plus précis, c'est que chaque ligne du tableau 1 (avec comme critère le nom-prénom et date) soit testée sur chaque ligne du tableau 2.
Si le test effectué trouve un résultat positif, on pourrait mettre "OK" en colonne C de la ligne testée.
En revanche, si aucune occurrence n'est trouvée, on pourrait mettre "ANOMALIE".
J'ai essayé ça. Evidement ça ne marche pas.
Je vous laisse admirer mon piètre résultat. L'important est de participer disait Coubertin lol
Sub Bouton1_Clic()
Dim cell As Range
DL = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For Each cell In Sheets("feuil1").Range("A3:" & "A" & DL)
If cell.Offset(0, 1).Value < cell.Offset(0, 6).Value And cell.Offset(0, 1).Value > cell.Offset(0, 5).Value Then
cell(0, 3).Value = "OK"
Else
cell(0, 3).Value = "ANOMALIE"
End If
Next
End Sub
Je peux vous redemander de l'aide ? :-)
julia Namor
8 févr. 2017 à 14:07
- Messages postés
- 493
- Date d'inscription
- jeudi 27 mars 2014
- Statut
- Membre
- Dernière intervention
- 26 décembre 2020
8 févr. 2017 à 14:07
Bonjour
Essayez ce code ,si j'ai bien compris ça fera l'affaire.
Cordialement
Essayez ce code ,si j'ai bien compris ça fera l'affaire.
Sub Bouton1_Clic()
Dim cell As Range
Application.ScreenUpdating = False
Sheets("feuil1").Range("C1:C20").ClearContents
DL = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For Each cell In Sheets("feuil1").Range("A3:" & "A" & DL)
For i = 3 To Range("F65536").End(xlUp).Row
If cell.Offset(0, 1).Value > Cells(i, 6).Value And cell.Offset(0, 1).Value < Cells(i, 6).Offset(0, 1).Value Then
cell.Offset(0, 2).Value = "OK"
Else
cell.Offset(0, 2).Value = "ANOMALIE"
End If
Next
Next
Application.ScreenUpdating = True
End Sub
Cordialement
salykato13800
8 févr. 2017 à 15:46
- Messages postés
- 11
- Date d'inscription
- mardi 31 janvier 2017
- Statut
- Membre
- Dernière intervention
- 6 avril 2017
8 févr. 2017 à 15:46
Alors, j’ai simplifié mes tableaux.
https://www.cjoint.com/c/GBioSkEfo6E
Ma situation est la suivante :
Le tableau 2 représente les déplacements professionnels des personnes.
Le tableau 1 représente les absences (maladie, congés ou déplacements professionnels).
Ce que je veux tester, c’est chaque ligne du tableau 1 dans chaque ligne du tableau 2 jusqu’à trouver une occurrence.
En clair, pour la ligne 1 du tableau 1 (BERNARD Pierre), la macro devrait me donner mon « OK » puisque le 13/12/16 est compris dans les dates de la ligne 4 BERNARD Pierre du tableau 2 (et non la ligne 6 du tableau 2 relative à Barbara Dupont).
Pour la ligne 2 de mon tableau 1 (Barbara Dupont), la macro devrait me dire « ANOMALIE » puisque le 08/12/16 n’est compris dans aucune date des lignes Barbara Dupont du tableau 2.
Mon test porte donc sur 2 critères : les nom-prénom et la date.
Je sais pas si je suis clair ? Désolé je pense ne pas l’avoir été du début.
Merci de votre aide.
https://www.cjoint.com/c/GBioSkEfo6E
Ma situation est la suivante :
Le tableau 2 représente les déplacements professionnels des personnes.
Le tableau 1 représente les absences (maladie, congés ou déplacements professionnels).
Ce que je veux tester, c’est chaque ligne du tableau 1 dans chaque ligne du tableau 2 jusqu’à trouver une occurrence.
En clair, pour la ligne 1 du tableau 1 (BERNARD Pierre), la macro devrait me donner mon « OK » puisque le 13/12/16 est compris dans les dates de la ligne 4 BERNARD Pierre du tableau 2 (et non la ligne 6 du tableau 2 relative à Barbara Dupont).
Pour la ligne 2 de mon tableau 1 (Barbara Dupont), la macro devrait me dire « ANOMALIE » puisque le 08/12/16 n’est compris dans aucune date des lignes Barbara Dupont du tableau 2.
Mon test porte donc sur 2 critères : les nom-prénom et la date.
Je sais pas si je suis clair ? Désolé je pense ne pas l’avoir été du début.
Merci de votre aide.
DjiDji59430
8 févr. 2017 à 15:47
- Messages postés
- 3541
- Date d'inscription
- samedi 19 avril 2008
- Statut
- Membre
- Dernière intervention
- 22 mai 2022
8 févr. 2017 à 15:47
Bonjour aux deux
Avec une formule :
https://www.cjoint.com/c/GBioUDpw5f1
Crdmt
Avec une formule :
https://www.cjoint.com/c/GBioUDpw5f1
Crdmt
salykato13800
8 févr. 2017 à 17:46
- Messages postés
- 11
- Date d'inscription
- mardi 31 janvier 2017
- Statut
- Membre
- Dernière intervention
- 6 avril 2017
8 févr. 2017 à 17:46
Bonjour,
Alors très bien cette formule, mais elle ne teste que la date sans le nom :-(.
Toutefois, si on peut trouver le numéro de la ligne dans le tableau 2 qui vérifie le test alors j'utilise un INDEX EQUIV et le tour est joué :-).
Alors très bien cette formule, mais elle ne teste que la date sans le nom :-(.
Toutefois, si on peut trouver le numéro de la ligne dans le tableau 2 qui vérifie le test alors j'utilise un INDEX EQUIV et le tour est joué :-).
DjiDji59430
8 févr. 2017 à 18:00
- Messages postés
- 3541
- Date d'inscription
- samedi 19 avril 2008
- Statut
- Membre
- Dernière intervention
- 22 mai 2022
8 févr. 2017 à 18:00
Re
juste un oubli !
https://www.cjoint.com/c/GBiq76Zq1r1
Si les noms avaient été différents dans l'exemple ...........
juste un oubli !
https://www.cjoint.com/c/GBiq76Zq1r1
Si les noms avaient été différents dans l'exemple ...........
julia Namor
8 févr. 2017 à 17:48
- Messages postés
- 493
- Date d'inscription
- jeudi 27 mars 2014
- Statut
- Membre
- Dernière intervention
- 26 décembre 2020
8 févr. 2017 à 17:48
Et ça!!!!!!!
Sub test()
Dim cell As Range
Dim Compteur As Integer
Dim vid As Range
Application.ScreenUpdating = False
Sheets("feuil1").Range("C1:C20").ClearContents
DL = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For Each cell In Sheets("feuil1").Range("A3:" & "A" & DL)
For i = 3 To Range("F65536").End(xlUp).Row
If cell.Value = Cells(i, 6).Offset(0, -1).Value And cell.Offset(0, 1).Value > Cells(i, 6).Value And cell.Offset(0, 1).Value < Cells(i, 6).Offset(0, 1).Value Then
Compteur = Compteur + 1
cell.Offset(0, 2).Value = Compteur
If Compteur <> 0 Then
cell.Offset(0, 2).Value = "OK"
End If
End If
Next
Next
For Each vid In Sheets("feuil1").Range("C3:" & "C" & DL)
If vid = "" Then
vid.Value = "ANOMALIE"
End If
Next
Application.ScreenUpdating = True
End Sub
salykato13800
8 févr. 2017 à 18:21
- Messages postés
- 11
- Date d'inscription
- mardi 31 janvier 2017
- Statut
- Membre
- Dernière intervention
- 6 avril 2017
8 févr. 2017 à 18:21
Alors là, je vous dis bravo à tous les deux.
Vraiment merci, les deux solutions marchent impec.
Au delà du résultat, je vais "éplucher" vos solutions pour progresser à titre personnel.
J'ai du mal avec les macros et je ne connaissais pas la formule proposée.
Vous êtes au top !
Merci beaucoup :-)
Vraiment merci, les deux solutions marchent impec.
Au delà du résultat, je vais "éplucher" vos solutions pour progresser à titre personnel.
J'ai du mal avec les macros et je ne connaissais pas la formule proposée.
Vous êtes au top !
Merci beaucoup :-)