Macro excel tri de donnée

Fermé
Mikael - 29 mars 2007 à 11:16
 Utilisateur anonyme - 2 avril 2007 à 18:42
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 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 700
29 mars 2007 à 22:02
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
30 mars 2007 à 09:36
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
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
2 avril 2007 à 18:42
La je vois pas mais va sur http://www.veriti.net/ ils auront surement la réponse qui va bien.........
0