Loop avec critères vba
Résolu/Fermé
Anthelm
Messages postés
198
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
2 mars 2024
-
Modifié le 6 févr. 2020 à 20:33
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 11 févr. 2020 à 22:53
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 11 févr. 2020 à 22:53
A voir également:
- Loop avec critères vba
- Find vba - Astuces et Solutions
- Incompatibilité de type vba ✓ - Forum Programmation
- Index equiv 2 critères - Forum Excel
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba dernière colonne non vide ✓ - Forum VB / VBA
3 réponses
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
Modifié le 8 févr. 2020 à 16:47
Modifié le 8 févr. 2020 à 16:47
Bonjour Anthelm
Je peux te proposer une fonction personnalisée ( à mettre dans un Module de l'éditeur VBA)
Ainsi dans ton exemple = concatA(C3:F3) en K3 renverrait FE1-1920-1080-
Cdlmnt
Via
Je peux te proposer une fonction personnalisée ( à mettre dans un Module de l'éditeur VBA)
Function concatA(plage As Range) For Each cell In plage cod = cod & cell.Value & "-" Next concatA = cod End Function
Ainsi dans ton exemple = concatA(C3:F3) en K3 renverrait FE1-1920-1080-
Cdlmnt
Via
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
7 févr. 2020 à 16:55
7 févr. 2020 à 16:55
Bonjour Anthelm
Pourquoi passer par une macro ?
Rajoute une colonne vide entre Critère et Commentaires, ensuite tu peux même masquer cette nouvelle colonne H
En L3 la formule = CONCAT(C3:H3) à étirer vers le bas
Si par la suite tu rajoutes des colonnes de critère avant la colonne H elles seront prises en compte dans la concaténation
Cdlmnt
Via
Pourquoi passer par une macro ?
Rajoute une colonne vide entre Critère et Commentaires, ensuite tu peux même masquer cette nouvelle colonne H
En L3 la formule = CONCAT(C3:H3) à étirer vers le bas
Si par la suite tu rajoutes des colonnes de critère avant la colonne H elles seront prises en compte dans la concaténation
Cdlmnt
Via
Anthelm
Messages postés
198
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
2 mars 2024
1
8 févr. 2020 à 13:59
8 févr. 2020 à 13:59
Bonjour Via,
Ca va poser problème, car le code sera:
FE119201080
Donc, je ne pourrais pas retrouver ou est la largeur et ou est la hauteur. Pareil si j'ai des réponses "Oui" aux critères.
CONCAT(C3:H3) seulement ne pourra pas, je prend un exemple bête mais pour donner l'idée, différencier:
FE1-1010-100 et FE1-10-10100, car ça donnera FE11010100 dans les deux cas.
Il faut donc faire effectivement quelque chose proche de CONCAT(C3:H3) , mais en intercalant quelque chose:
FE1Hauteur1920Largeur1080 ...
C'est pour ça que je pensais partir sur une macro!
Ca va poser problème, car le code sera:
FE119201080
Donc, je ne pourrais pas retrouver ou est la largeur et ou est la hauteur. Pareil si j'ai des réponses "Oui" aux critères.
CONCAT(C3:H3) seulement ne pourra pas, je prend un exemple bête mais pour donner l'idée, différencier:
FE1-1010-100 et FE1-10-10100, car ça donnera FE11010100 dans les deux cas.
Il faut donc faire effectivement quelque chose proche de CONCAT(C3:H3) , mais en intercalant quelque chose:
FE1Hauteur1920Largeur1080 ...
C'est pour ça que je pensais partir sur une macro!
Anthelm
Messages postés
198
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
2 mars 2024
1
Modifié le 8 févr. 2020 à 14:06
Modifié le 8 févr. 2020 à 14:06
Quelque chose du type:
For each row in Tableau1
Code = "Entête" + première cellule + 2eme entete + 2 eme cellule...
Déjà ça, ensuite j'essaierai de faire en sorte que les cellules vides ne soient pas comptées.
J'essaierai d'avancer comme ça en fin d'après midi aujourd'hui, mais si tu as une idée ou un début de code, je suis vraiment preneur.
Je pense partir sur une loop avec offset, mais j'ai peur que ce soit pas "optimal", même si ça devrait marcher. Rien que ton avis sur ça serait précieux car j'ai peur de passer des heures dessus et me rendre compte après que ce n'était pas la bonne méthode!
J'hésite à essayer d'utiliser "Array", aussi.
For each row in Tableau1
Code = "Entête" + première cellule + 2eme entete + 2 eme cellule...
Déjà ça, ensuite j'essaierai de faire en sorte que les cellules vides ne soient pas comptées.
J'essaierai d'avancer comme ça en fin d'après midi aujourd'hui, mais si tu as une idée ou un début de code, je suis vraiment preneur.
Je pense partir sur une loop avec offset, mais j'ai peur que ce soit pas "optimal", même si ça devrait marcher. Rien que ton avis sur ça serait précieux car j'ai peur de passer des heures dessus et me rendre compte après que ce n'était pas la bonne méthode!
J'hésite à essayer d'utiliser "Array", aussi.
Modifié le 11 févr. 2020 à 22:07
C'est excellent pour trier les doublons et afficher le code de manière lisible.
Tu penses qu'avec 1000-1500 lignes ça restera utilisable?
11 févr. 2020 à 22:53
Oui 1500 lignes ce n'est pas beaucoup
A tester quand même