Résolu Contenu de cellule est une plage

  • Auteur de la discussion biroulig
  • Date de début

biroulig

Nouveau membre
Bonjour,

Je 1 fichier excel qui contient plusieurs tableaux que je dois trier. je n'arrive pas à trouver le code pour déclarer en VBA que le contenu de ma cellule est une plage de cellule. Je passe par un tableau ou j'ai les plages des tableaux à trier)
Ce que j'ai trouvé s'est:
"Feuil1.Range([I1])"
Mais ça manque de souplesse car je n'arrive pas à lui mettre d'offset de décalage afin de l'intégrer dans une boucle suivant mes critères de tri.
 

zeb

Modérateur
Salut,

Je n'ai pas bien compris ton problème.
Commet imagines-tu vouloir faire la demande à l'utilisateur ?
 

biroulig

Nouveau membre
Pour faire le trie du fichier j'utilise un tableau dans lequel je renseigné les différentes la plage des cellules qui m'intéresse. Et avec une macro "find" je renvoie la valeur qui se trouve 1 ou 2 colonne plus à droite suivant un critère dans un tableau. J'espère avoir été plus clair. Merci
 

zeb

Modérateur
Oki. Donc c'est plutôt côté syntaxe qu'il faut regarder.
Fais voir ton code :)

(relis le règlement pour correctement publier ton code ;) )
 

biroulig

Nouveau membre
J'ai mis la totalité du code mais le problème est après le commentaire entre tirets. Ca fonctionne mais ce n'est pas souple car je voulais y mettre directement l'offset pour continuer ensuite .

MERCI


Sub FIND()

Dim recherchev As Worksheet
For col = 0 To 14
Dim Dec As Integer 'décalage de colonne

Set recherchev = Feuil1
For n = 0 To 11

Dec = 1
'décalage de 1 colonne de la valeur à renvoyer dans le tableau quel que soit le type
Dim PLAGE As Range
Dim cel
Set PLAGE = Range("AC30:AF30")
For Each cel In PLAGE
If cel.Value = Range("AB30").Offset(0, col).Value Then
' Décalage de 2 colonne de la valeur à renvoyer si
Dec = 2
End If
Next cel

Feuil1.Range("I1") = Feuil1.Range("K3").Offset(0, n)
'Range("I1") égale à la plage de tri du moment décalage par l'offset
'Range("K3") correspond à la 1ere case de la liste de plage à trier

Dim x As Range
------------------------------------------------------------------------------------
C'est la ligne qui suit qui me gène je suis obligé de passer par la ligne du dessus et je pense qu'il existe plus simple.
dans les cellules K3:V11 il n'y a que des plages
------------------------------------------------------------------------------------
Set x = recherchev.Range([I1]).FIND(Range("AB30").Offset(0, col).Value, , xlValues, xlWhole, , , False)
'Range([I1]) reconnait le contenu comme une référence de cellule qui correspond à la plage de tri du moment
'AB30 contient le texte à recherché
'AB31 correspond à la 1ere case à remplir

Range("AB31").Offset(n, col) = "vide" 'initialisation si pas trouver "texte"

If Not x Is Nothing Then
Range("AB31").Offset(n, col) = x.Offset(0, Dec)
End If
Next
Next

End Sub
 

zeb

Modérateur
Meilleure réponse
Je l'avais mis en petit pour ne pas être vexant. Tant pis, je recommence en gros :

________________________________________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Relis le règlement pour correctement publier ton code.
________________________________________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

[:zeb:6]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 152
Messages
6 718 436
Membres
1 586 427
Dernier membre
Huxley88
Partager cette page
Haut