Macro excel tri de donnée

Mikael -  
 Utilisateur anonyme -
Bonjour j'ai un petit souci de macro sous excel

Voila mon problème:

J'ai une liste ou dans une cellule figure deux données ( en l'occurrence diamètre et épaisseur d'un tube). J'ai besoin de récupérer dans deux cellules bien distinctes ces données. J'ai donc eu l'idée de faire une macro (car j'ai 695 lignes). Une fois ma macro enregistrée, je l'édite et ajoute une boucle du type for i = 2 to 695. Le problème c'est que ca ne marche pas très bien puisqu'il me copie dans toute les cellules la même voici ma macro:

Sub Diametre()

Dim I As Long
For I = 2 To 695
Cells(I, 2).Select
ActiveCell.FormulaR1C1 = "394 x 9,5"
Cells(I, 3).Select
ActiveSheet.Paste
Next
End Sub

Que dois-je mettre après ..FormulaR1C1 pour qu'à chaque fois il me selectionne les 3 premiers caractères?

Merci pour votre aide
A voir également:

4 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Si j'ai compris ton problème, tu n'a pas besoin de macro.

Dans ta colonne A tu as des données sous la forme : "394 x 9,5" à partir de la ligne 2.

Dans ta colonne B ligne 2 tu mets la formule :
=CNUM(GAUCHE(A2;3))


Dans ta colonne C ligne 2 tu mets la formule :
=CNUM(DROITE(A2;3))


tu sélectionnes les cellules B2:C2 et tu te positionnes en bas à droite et
lorsque tu as le petit "+" tu tires ta souris jusqu'en bas du tableau.

Si tu préfères une macro, tu peux utiliser la suivante mais cela ne parait pas utile.

Sub Diametre()

Dim I As Long
For I = 2 To Cells(2, 1).End(xlDown).Row
Cells(I, 2).FormulaR1C1 = "=VALUE(LEFT(RC[-1],4))"
Cells(I, 3).FormulaR1C1 = "=VALUE(RIGHT(RC[-2],4))"
Next I

End Sub


Tout ceci fonctionne avec des données de 3 ou 4 caractères à droite et à gauche avec un espace,
si les données sont différentes en longueur il faut compléter la formule.


Merci de nous tenir au courant.
0
Utilisateur anonyme
 
Salut Sinon sur le meme principe selectionner la colonne et faire données->convertir-> choisir comme séparateur le x (si tes données sont sous le forme 12x2) ou tout autre séparateur adapté à ta mise en page ( , . [espace] ou autre)
0
mikael
 
C'est bon ça fonctionne merci. Cependant j'ai un second problème:

J'ai un tableur de calcul qui me renvoie oui ou non suivant certaines conditions (fonction si). Je voudrai copier le résultat dans une cellule puis relancer le calcul pour copier le nouveau résultat dans une autre cellule sans changer le résultat de la première cellule. ex: premier calcul la fonction donne oui => première cellule je copie oui. Second calcul la fonction donne non => deuxième cellule je copie le non.

Le problème c'est qu'actuellement dans l'exemple ci dessus la première cellule reprend la valeur non.

Comment faire

Merci pour votre aide.
0
Utilisateur anonyme
 
La je vois pas mais va sur http://www.veriti.net/ ils auront surement la réponse qui va bien.........
0