[Excel] Condition sur liste variable

Jodko -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je voudrais transformer une liste qui se présente sous la forme suivante :

Tache1
Ressource1
Ressource2
Tache2
Ressource1
Ressource3
Tache3
Ressource1
Ressource2
Ressource4

[...]

Pour la transformer de manière à décaler les ressources sur la meme ligne mais dans la colonne d'à coté.

Bien évidemment, le nombre de ressource est aléatoire.

Pour le moment, j'ai fait une boucle If activecell.value = "Ressource1" Or Activecell.Value = "Ressource2" etc.

Le problème, c'est que je dois modifier la macro à chaque fois qu'une nouvelle ressource apparait, et qu'en plus, la liste est longue comme un jour sans pain.

Je voulais savoir s'il était possible de mettre une condition du type If Activecell.value "appartient" à un tableau.

Merci de votre aide.

Jodko.

5 réponses

pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
SAlut,
Dans un cas comme celui-ci je ferais une boucle comme ceci :
If Left(ActiveCell,5) = Resso Then
0
Jodko
 
En fait, j'ai mis "RessourceX" pour faire simple et générique, mais les codes ressources sont des accronymes tout ce qu'il y a de plus barbares...

Je ne peux donc pas faire ce que tu proposes.

Jodko.
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
J'ai "bricolé" ce code (à adapter):

Sheets("Feuil1").Range("A1").Select 'te place sur la première cellule du fichier à "trier"
Do While ActiveCell <> ""
With Sheets("Feuil2").Range("A1:A3") ' à remplacer par le tableau récapitulatif de tes "ressources"
For i = 1 To 3 'si tu as 3 ressources dans ton tableau
If ActiveCell = .Cells(i, 1) Then
ActiveCell.Offset(0, 1) = ActiveCell
ActiveCell = ""
End If
Next i
End With
ActiveCell.Offset(1, 0).Select
Loop

0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Je suppose que "tache1" etc sont également des noms barbares?
0
Jodko
 
Effectivement !

Jodko.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Tu dis que :
Je voulais savoir s'il était possible de mettre une condition du type If Activecell.value "appartient" à un tableau.
donc tes valeurs "ressources" sont toutes dans un tableau?
Si oui, il faudrait passer par recherchev du style
If activeCell = RECHERCHEV(ActiveCell,tableau,1,FALSE) Then ' la syntaxe n'est pas correcte mais l'idée est là... si la cellule active est égale à sa propre recherchev donc appartient bien au tableau..... A creuser.
0