rever les 4 premieres lettres de chaque ligne

  • Initiateur de la discussion Initiateur de la discussion timmi88
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

timmi88

Guest
Bonjour Bonjour
je débute en vb et cherche un peu d'aide
mon travail consiste a selectionner plusieurs lignes a la suite, chacune de ces lignes comportant une opération technique.


1)voila, j'aimerai obtenir la taille (ie le nombre de ligne) de ma sélection mais je ne sais pas comment faire...
exemple, si je sélectionne 12 lignes, j'aurais 12

2) serait il possible de relever pour chaque suite d'opération sélectionnée les quatre premières lettres de chaque opération et les rentrer dans une cellule en les séparant par une virgule...

ex:
percer
clouer
visser
préparer la peinture
donnerait -----> perc,clou,viss,prep

3) si la programmation précédente est faisable, peut on corser le tout en essayant de ranger les opérations par ordre alphabétique?



Merci par avance, j'espere que vous pourrez me donner des conseils
 
Dernière modification par un modérateur:
Re : rever les 4 premieres lettres de chaque ligne

Bonjour timmi88


Si tu débutes en VBA
Tu te dois de :
Ouvrir Excel
faire ALT+F11
puis F1
La déjà tu auras de quoi progresser et tu trouveras seul
que tu pourrais écrire par exemple ce bout de code.

Code:
Sub MaPremiereMacro()
MsgBox Selection.Rows.Count
End Sub
EDITION:
Je te laisse tester ce code (qui il est vrai n'est pas spécialement fait pour un débutant 😉 )
Mais au moins, tu pourras chercher à comprendre son fonctionnement en cherchant dans l'aide ne ligne et sur le forum.
Code:
Sub a()
Dim t(), i&
t = Selection.Value
ReDim t(1 To Selection.Rows.Count)
For i = 1 To UBound(t)
t(i) = VBA.Left(Selection.Item(i, 1), 4)
Next i
Selection.Offset(, 1).Cells(1, 1).Resize(, UBound(t)) = t
End Sub
PS: je reviendrai plus tard détaillé et expliquer ce code(qui ne fait pas tout à fait ce que tu veux)

Mais là, j'ai plus le temps, je dois aller au boulot 😱
 
Dernière édition:
Re : rever les 4 premieres lettres de chaque ligne

Bonjour,

une autre solution, supposant tes données dans la colonne A de le feuille active :

Code:
Option Explicit
Sub test()
Dim s() As Variant, i As Byte, j As Byte, temp As String
For i = 0 To Range("A65536").End(xlUp).Row - 1
    ReDim Preserve s(i)
    s(i) = Left(Cells(i + 1, 1).Value, 4)
Next
For i = LBound(s, 1) To UBound(s, 1)
    For j = i + 1 To UBound(s, 1)
        If s(i) > s(j) Then
            temp = s(i)
            s(i) = s(j)
            s(j) = temp
        End If
    Next j
Next i
temp = ""
For i = LBound(s, 1) To UBound(s, 1)
    temp = temp & s(i) & ","
Next i
Range("B1").Value = Mid(temp, 1, Len(temp) - 1)
Range("B2").Value = UBound(s) + 1 'nombre de lignes de la colonne A
End Sub

bonne journée
@+
 
Re : rever les 4 premieres lettres de chaque ligne

Re



Bon, j'ai pas pu résister

(je vais être en retard au boulot, tu me feras un mot timmy88 😉 )


Cette fois-ci, on obtient le résultat escompté 😉
Code:
Sub b()
Dim c As Range, S_tr$
For Each c In Selection
S_tr = S_tr & ";" & Left(c.Text, 4)
Next c
Selection.Offset(, 1).Cells(1, 1).Value = Mid(S_tr, 2, Len(S_tr) - 1)
End Sub

edition: bonjour Pierrot93 , merci d'avoir réveillé mes neurones 😉
 
Re : rever les 4 premieres lettres de chaque ligne

Re,

A noter, dans le code que je t'ai donné, pour coller à la selection, il faut modifier le code de la première boucle ainsi :
Code:
Dim c As Range
i = 0
For Each c In Selection
    ReDim Preserve s(i)
    s(i) = Left(c.Value, 4)
    i = i + 1
Next c

@+
 
Re : rever les 4 premieres lettres de chaque ligne

Merci à tous

votre aide m'a permis d'avancer énormément!!!!!

j'ai hâte d'arriver à programmer un peu mieux car c'est fou le temps que l'on gagne à faire ça

^^

pour le mot de retard, je veux bien Pierrot mais comme motif je marque quoi? a aider son prochain.....peut être que ça marcherai, faut voir
Lien supprimé

++
 
Re : rever les 4 premieres lettres de chaque ligne

Re,

Euh... comprends pas trop ce que tu veux dire.... le lien donné donne nul part... enfin chez moi...

pour le mot de retard, je veux bien Pierrot mais comme motif je marque quoi? a aider son prochain.....peut être que ça marcherai, faut voir
Lien supprimé

bonne soirée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour