Incrémenter un n° de commande (Faire plus simple que je l'ai fait…)

YANN-56

XLDnaute Barbatruc
Bonsoir à ceux qui passeront par là.

Cela marche bien. Cela fait joli et un peu "Pro" :)

Mais il ne me plait pas d'avoir eu à écrire ces sept lignes pas bouffables! :mad:

Code:
Dim TIRET As Variant
TIRET = "_"

Worksheets("Feuil1").Cells(10, 1).Value = Left(Worksheets("Feuil1").Cells(10, 1).Value, _
InStrRev(Worksheets("Feuil1").Cells(10, 1).Value, TIRET, -1)) _
& Right(Worksheets("Feuil1").Cells(10, 1).Value, _
(Len(Worksheets("Feuil1").Cells(10, 1).Value) - _
InStrRev(Worksheets("Feuil1").Cells(10, 1).Value, TIRET, -1))) + 1

Ouf! Bonjour la place dans ma Macro!!! Il y a certainement plus simple et lisible…. Non?

Si Oui, la roue de la souris et moi sommes preneurs, et Merci d'avance.

Bonne fin de fin de semaine à tous.

Yann
 

Pièces jointes

  • N°CDE.xls
    25 KB · Affichages: 91

YANN-56

XLDnaute Barbatruc
Re : Incrémenter un n° de commande (Faire plus simple que je l'ai fait…)

Bonjour job75 et à tous,

Voici comment j'ai adapté à mes fins; ce que tu m'as concocté.

Code:
With ActiveSheet
.Cells (R, C).AutoFill .Cells (R, C).Resize (2): .Cells (R, C).Offset (1).Cut .Cells (R, C)
End With

Classeur joint pour montrer le bon résultat quelque soit la longueur
du nom du fournisseur, du séparateur utilisé ou du nombre.

Bravo pour ta réalisation!!!

En plus ici ta déclaration de variable de type String par "$" n'est plus nécessaire,
d'autant que l'objet Range n'est vraiment pas ma tasse de thé… Sauf obligé!
Surprenant, n'est-il pas? Dans cet exemple, toutes les cellules sont de format standard,
et cela fonctionne…

Je pourrais continuer à poursuivre cette méthode, sans essayer de comprendre.

Pour "AutoFill", "Resize" , "Offset" et "Cut"… O.K. il y a explication dans l'aide.

Mais je ne pige pas vraiment le cheminement de la manœuvre, et l'ajout
de +1 aux n° d'ordre des commandes, tient pour moi du mystère!
Que tu aies besoin d'écrire provisoirement dans la ligne du dessous l'est aussi…

Là je dois dire que je suis bluffé… :confused:

Albert Einstein disait que la bêtise humaine lui donnait une certaine idée de l'infini.
Vos aides me donnent celle de ce qu'il me reste encore à apprendre. :)

Merci encore.

Yann
 

Pièces jointes

  • EXP_2.xls
    32 KB · Affichages: 55

job75

XLDnaute Barbatruc
Re : Incrémenter un n° de commande (Faire plus simple que je l'ai fait…)

Bonjour YANN-56, le fil, le forum,

Content que ma solution te plaise.

Sur les mystères de l'incrémentation, jette un coup d'oeil sur ce fil :

https://www.excel-downloads.com/threads/poignee-de-recopie.132279/

Maintenant tu peux avantageusement simplifier ton code par :

Code:
With ActiveSheet[COLOR="Red"].Cells(R, C)[/COLOR]
.AutoFill .Resize(2): .Offset(1).Cut .Item(1)
End With

On peut aussi mettre des ScreenUpdating et écrire :

Code:
Private Sub CommandButton1_Click()
Incremente Cells(5, 3)
End Sub

Private Sub CommandButton2_Click()
Incremente Cells(10, 3)
End Sub

Private Sub CommandButton3_Click()
Incremente Cells(15, 3)
End Sub

Sub Incremente(r As Range)
Application.ScreenUpdating = False
r.AutoFill r.Resize(2): r.Offset(1).Cut r
Application.ScreenUpdating = True
End Sub

A+
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Incrémenter un n° de commande (Faire plus simple que je l'ai fait…)

Re :)
Et non, ce n'était pas un sourire (comme :p), mais simplement ma façon habituelle de clore mes messages :D...
Pour la fonction, elle est à mettre dans un module, puis elle peux être appelée directement dans une cellule (ou dans une sub). Dans ce cas précis, si as besoin d'une RechercheV sur le fournisseur, ta cellule peut être renseignée du style
Code:
=RECHERCHEV(Fournisseur(A10);$G$1:$J$30;2;FAUX)
puisque Fournisseur(A1) renverra "NOM_FOURNISSEUR".
> 10 pour qu'il y ait bien " en 1er caractère et _"####0 à la fin + mini 2 caractères, pour éviter qu'il y ait plantage.
Mid(..., 2, ... - 8) pour supprimer ces mêmes caractères superflus.
Bonne journée :cool:
 

YANN-56

XLDnaute Barbatruc
Re : Incrémenter un n° de commande (Faire plus simple que je l'ai fait…)

Re Bonjour à tous, :) :) :)

Merci Paritec, pierrejean, staple1600, JNP, job75, Pascal, Jean-Noël,
Yann (Zut, c'est moi!!!), Maman, Papa...
Tous les jours, je voudrais que ça r'commence …You kaïdi aïdi aïda.

Je suis bordé pour les longues soirées d'hiver.
(Dommage qu'il ne pleuve jamais en cette saison dans notre Sud Bretagne)

En plus de m'avoir aidé, vous m'avez donné l'envie d'apprendre encore plus!

Grand Merci à vous et plein de bonnes choses.

Yann
 

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly