Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1996 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  récupérer des chiffres dans une expression (vbaexcel)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

récupérer des chiffres dans une expression (vbaexcel)

n°1343947
rip324
Posté le 11-04-2006 à 11:46:34  profilanswer
 

Je veux passer de "159A" à "15" et de "717Z" à "71".
Je veux garder les 2 premiers chiffres uniquement.
Dans une cellule j'ai "159A" et dans une autre je veux arriver à "15".
Comment faire avec une macro en vba ??


Message édité par rip324 le 11-04-2006 à 11:55:08
mood
Publicité
Posté le 11-04-2006 à 11:46:34  profilanswer
 

n°1343990
lhonolulu
Posté le 11-04-2006 à 12:22:34  profilanswer
 

tu as la fonction mid. elle va récuperer un bout de ton exspression
mid(ton expression, a partir de quel caractère on extrait, longueur à extraire)
ex : mid("bonjour", 3,2) donnera "nj"
cellule1 = 159A
cellule2 contiendra les 2 1er caractère de cellule1
dans ton cas cellule2.value = mid(cellule1.value,1,2)

n°1344126
rip324
Posté le 11-04-2006 à 14:29:06  profilanswer
 

j'ai fais ce programme mais le pb c'est que dans ma liste j'ai aussi des chiffres comme "15" ou "75" avec 2 untés seulement, et je veux qu'il reste normaux ceux là.
Or avec ce programme ça les enlève et ça décale ma seconde liste.
ex
liste1   985r  865t   45  856f  15  897f
liste2   98     86     85    89
 

Sub gauche()
Range("AC2" ).Select
Range("AB2:AB15" ).ClearContents
Do While UCase(ActiveCell) <> ""
cpt = 0
    Do While UCase(Range("AB2" ).Offset(cpt, 0)) <> "" And UCase(Range("AB2" ).Offset(cpt, 0)) <> UCase(ActiveCell)
    cpt = cpt + 1
    Loop
    If Range("AB2" ).Offset(cpt, 0) = "" Then
       Range("AB2" ).Offset(cpt, 0) = Left(ActiveCell, 2)
    End If
    Selection.Offset(1, 0).Select
Loop
End Sub


 
remarque : même avec ton "bout" de programme ça me fait la même chose.


Message édité par rip324 le 11-04-2006 à 14:33:40
n°1344153
porcinet82
Posté le 11-04-2006 à 14:44:02  profilanswer
 

Salut,
 
Vite fait en passant, tout simplement en utilisant un left. Je ne sais pas trop comment se présente tes données mais si tu as en colonne A par exemple ta liste1 et que tu veux mettre en colonne B seulement les 2 premiers caractères, un code comme celui-ci fait l'affaire :

Code :
  1. Sub essai()
  2. Dim i As Integer
  3. For i = 1 To Range("A65536" ).End(xlUp).Row
  4.     Cells(i, 2).Value = Left(Cells(i, 1).Value, 2)
  5. Next i
  6. End Sub


 
@+
 
 

n°1344162
rip324
Posté le 11-04-2006 à 14:50:28  profilanswer
 

J'ai réussi en fait :
 

Sub gauche()
Range("AC2" ).Select
Range("AB2:AB190" ).ClearContents
Do While UCase(ActiveCell) <> ""
cpt = 0
    Do While UCase(Range("AB2" ).Offset(cpt, 0)) <> ""
    cpt = cpt + 1
    Loop
    If Range("AB2" ).Offset(cpt, 0) = "" Then
       Range("AB2" ).Offset(cpt, 0) = Left(ActiveCell, 2)
    End If
    Selection.Offset(1, 0).Select
Loop
End Sub


 
merci tt le monde ++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  récupérer des chiffres dans une expression (vbaexcel)

 

Sujets relatifs
[DELPHI] récupérer les infos d'un ac3.NHIBERNATE "outer or full join must be followed by path expression"
[C / Unix] Recuperer un evenement clavier en mode consolerecuperer info sur base de donnée
Batch Dos. Fonction pour récuperer le nom du fichier dans un path?Récupérer un élément précis du formulaire
[Résolu] Récupérer l'id max d'une tablerécuperer un texte sur un site
Récupérer avec une seule fonction champs de formulaire 
Plus de sujets relatifs à : récupérer des chiffres dans une expression (vbaexcel)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR