Contenu de cellule est une plage
Dernière réponse : dans Programmation
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.
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.
Autres pages sur : contenu cellule plage
Lassé par la pub ? Créez un compte
Meilleure solution
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.
________________________________________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Relis le règlement pour correctement publier ton code.
________________________________________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
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
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
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumTest contenu cellule
- ForumLire le contenu d'une cellule
- ForumTester le contenu d'une cellule
- ForumVba contenu d'une cellule
- ForumExcel contenu d'une cellule
- ForumMacro contenu d'une cellule
- articlesAfficher le contenu d'une cellule
- articlesRechercher le contenu d'une cellule
- ForumComparer le contenu d'une cellule
- ForumVérifier le contenu d'une cellule
- Voir plus
)