XL 2010 Code VBA

Thibault98

XLDnaute Occasionnel
Bonsoir,

Avec l'enregistreur de macro j'ai obtenu ceci :

ActiveCell.FormulaR1C1 = "=RIGHT(RC[1],4)" pour sélectionner les 4 derniers caractères côté droit de la cellule voisine.

Dans un code VBA peut-on écrire ce résultat autrement ?
Plus lisible.

Merci d'avance,
Thibault
 

Si...

XLDnaute Barbatruc
Bonjour

Il s'agit de savoir si tu veux garder la formule ou n'avoir que sa valeur.

Dans le premier cas, la seule ligne proposée peut renvoyer une réponse bizarre, dans le second, fidèle à ma suppression du Offset utilisé par Papou-net (salut), je propose, bien moins éclatant que Staple (salut à toi l'artiste qui teste la longueur du texte mais pas la colonne pour avoir une bonne réponse ) :

La sélection doit recevoir en fonction de la droite

premier cas (formule en français dans le code)
VB:
Sub QuatreF()
  Dim R As Range
  Set R = (ActiveCell(1, 2))
  If Len(R) > 4 Then ActiveCell.FormulaLocal = "=DROITE(" & R.Address & ";4)"
End Sub

Second cas
VB:
Sub QuatreV()
  Dim R As Range
  Set R = ActiveCell(1, 2)
  If Len(R) > 4 Then ActiveCell = Right(R, 4)
End Sub


Remarque pour le second cas on peut reprendre la première macro en joutant à la fin
ActiveCell=ActiveCell.Value


La cellule sélectionnée doit renvoyer à gauche
Reprise de la Macro de Staple
VB:
Sub Macro1()
  Dim vCar&
  If Selection.Count > 1 Then Exit Sub
  If Selection.Columns = 1 Then Exit Sub  'la cellule sélectionnée ne doit pas être en colonne 1
  vCar = Len(Selection)
  Selection.TextToColumns Selection(1, 0), 2, FieldInfo:=Array(Array(0, 9), Array(vCar - 4, 1), Array(vCar, 9))
End Sub
 

Discussions similaires

Réponses
17
Affichages
1 K
Réponses
14
Affichages
445

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia