Dans la macro ci-dessous, est-il possible d’obtenir la variable « refcelfin » sans passer par l’intermédiaire de Cells(8,9) et Range (« I8 »).
Ce qui revient à supprimer certains caractères d’une variable pour en créer une nouvelle.
Merci.
'recherche référence cellule (cellule fin)
Dim plage As Range
Set plage = Range(« a1:bb100 »)
monchiffre = « cellule fin »
For Each cell In plage
If cell.Value = monchiffre Then
adressecelulefin = cell.Address
Cells(8, 9) = adressecelulefin
End If
Next cell
à tout hasard : peut-être que pour comprendre, il faut lire et supposer quelque chose
sans le tester ? mais si la plupart des erreurs est causé par l’objet entre l’écran
et la chaise (c’est-à-dire l’utilisateur), alors faudrait demander à @Patrick-Remilly.
La macro commence par rechercher les références d’une cellule qui contient : « « cellule fin » » dans la feuille de calcul. Pour info, cette cellule varie de positionnement en fonction des données journalières.
Lorsque la macro trouve la cellule, elle en fait une variable : « « adressecelulefin » »
Cette variable apparaît sous la forme par exemple « « $D$15 » »
Pour la suite de la macro, j’ai besoin qu’elle apparaisse sans les $ sous la forme « « D15 » »
Sub Test()
'recherche référence cellule (cellule fin)
Dim plage As Range
Set plage = Range("a1:bb100")
monchiffre = "cellule fin"
For Each cell In plage
If cell.Value = monchiffre Then
cell.Activate
adressecelulefin = ActiveCell.Address(0, 0)
End If
Next cell
End Sub
Sub Test()
'recherche référence cellule (cellule fin)
Dim plage As Range, s As String
Set plage = Range("a1:bb100")
monchiffre = "cellule fin"
For Each cell In plage
If cell.Value = monchiffre Then s = s & ", " & cell.Address(0, 0)
Next
adressecelulefin = Mid(s, 3)
MsgBox adressecelulefin
End Sub
Merci.
C’est exactement ce que je recherchais et qui va simplifier ma macro.
Pour comprendre le fonctionnement de Activecell.Address, si je n’avais voulu conserver que les $ par quoi j’aurais dû remplacer (0, 0) ?
1- Utilisation de Split pour mettre en tableau les valeurs en utilisant le séparateur $, il suffit de paramétrer l’affichage de la cellule sous la forme A$15, Split l’éclate dans un tableau avec deux items : item 0 = A et item1 = 15, il suffit de prendre le premier item :
On récupère uniquement l’adressage de la colonne, par exemple AH:AH et on éclate le texte avec le séparateur « : », puis on prend uniquement la première valeur.
3 - On compte le nombre de caractères du numéro de la colonne que l’on déduit du nombre total de caractère que représente l’adresse de la cellule :
Je ne maîtrise pas le vba mais avec un peu de bonne volonté et l’aide précieuse des membres du forum on peut se débrouiller.
Au besoin, pour chaque tâches, je crée des macros sous Excel que j’assemble.
Je vais ensuite fouiller dans les sujets du forum pour essayer d’améliorer ou de faire fonctionner mes macros.
Je copie bien-sûr toutes vos solutions et je les testerai pour en comprendre le fonctionnement.
Encore pour merci pour votre aide.
Patrick