Extraire les deux derniers caractres

Francis

XLDnaute Junior
Bonsoir le forum
Dans une cellule, contenant X caractères de tous types, genre (04.555/ABCDEF/13 )
Je cherche à récupérer les deux derniers caractères ( qui sont toujours des chiffres) et les coller dans une cellule contigüe et ce dans toutes les feuilles du classeur.


For I = 1 To Sheets.Count
With Sheets(I)
*
[G2] = Range("E2").Characters(12, 2) (bien sur cette phrase ne fonctionne pas)
*
*
End With
Next I
Quelqu’un peut il me mettre sur la voie?
Merci pour votre aide
Francis
 

CB60

XLDnaute Barbatruc
Re : Extraire les deux derniers caractres

Bonsoir
Pour une feuille cela doit donner ça, pour plusieurs je ne sais pas
Sub toto()
[a1].Select 'On commence en A1
Do Until ActiveCell = "" 'Faire la boucle jusqu'à ce que la cellule selectionnée soit vide
ActiveCell.Offset(0, 2).FormulaR1C1 = "=RIGHT(RC[-2],2)"
'on se décale en C1 pour extraire les 2 caractéres
ActiveCell.Offset(1, 0).Select 'Décalage de 1 ligne à chaque fois
'on descend d'une cellule
Loop
[a1].Select
End Sub
 

dixit

XLDnaute Impliqué
Re : Extraire les deux derniers caractres

re
oui bien sûr il faut boucler si nécessaire.
boucle basique :
for b=1 to 65536 (ou plus si Excel 2007)
if cells(b,1)="" then exit for ' exemple colonne 1
' traitement ici
next
boucler pour les colonnes aussi
bye
 

Francis

XLDnaute Junior
Re : Extraire les deux derniers caractres

Bonsoir Dixit, CB60 et le forum

Merci pour vos réponses et particulièrement « ActiveCell.Offset(0, 2).FormulaR1C1 = "=RIGHT(RC[-2],2)" Ça marche très bien
Donc pour balayer sur toutes les feuilles :

For I = 1 To Sheets.Count
With Sheets(I)
.range("F3").Offset(0, 2).FormulaR1C1 = "=RIGHT(RC[-2],2)"
End With
Next I
Merci encore
Francis
 

Spitnolan08

XLDnaute Barbatruc
Re : Extraire les deux derniers caractres

Bonsoir à tous,

J'arrive après la bataille, mais pour éviter de surcharger ta feuille avec des formules :
Code:
For I = 1 To Sheets.Count
With Sheets(I)
.range("F3").Offset(0, 2) = RIGHT(Range("F3"),2)
End With
Next I
Non testé mais devrait fonctionner...

Cordialement
 

CB60

XLDnaute Barbatruc
Re : Extraire les deux derniers caractres

Bonjour à tous

Ou est l'erreur pour la boucle sur feuille et ensuite sur les autres feuilles.
Sub toto2()
For I = 1 To Sheets.Count
[a1].Select
With Sheets(I)
'.Range("a1").Offset(0, 2) = Right(.Range("a1"), 2)
Do Until ActiveCell = "" 'Faire la boucle jusqu'à ce que la cellule selectionnée soit vide
ActiveCell.Offset(0, 2) = Right(ActiveCell.Offset, 2) ActiveCell.Offset(1, 0).Select 'Décalage de 1 ligne à chaque fois
Loop
End With
Next I
End Sub
 

dixit

XLDnaute Impliqué
Re : Extraire les deux derniers caractres

bonjour,
(déjà [a1].Select ne doit pas fonctionner).
une sélection de cellules c'est soit avec Range soit avec Cells
cells(1,1).select pour A1
bye
Edit : bon, ne pas tenir compte de cette remarque car [A1].select fonctionne bien. je n'avais pas utilisé cette syntaxe donc je suis allé un peu vite ...
 
Dernière édition:

Hervé

XLDnaute Barbatruc
Re : Extraire les deux derniers caractres

bonjour

si si

[a1].Select fonctionne tres bien, meme si ce n'est pas la meilleur facon de syntaxer une cellule.

cb, dans ton code tu boucles sur toutes les feuilles, mais tu ne travailles en réalité que sur la feuille active.

For I = 1 To Sheets.Count
[a1].Select
With Sheets(I)

à remplacer par :

For I = 1 To Sheets.Count
With Sheets(I)
.select
.range("a1").Select

salut
 

CB60

XLDnaute Barbatruc
Re : Extraire les deux derniers caractres

Re
Merci hervé, lorsque je passais ma macro avec "F8" je voyais bien qu'il me compter les feuilles, mais je ne voyais pas comment faire le changement de feuille.
Donc une fois de plus merci
 

Discussions similaires

Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 153
dernier inscrit
SamirN