Poignée de recopie

Celeda

XLDnaute Barbatruc
Bonjour,

Je suis à la recherche d'une macro du type "tirer sur la poignée de recopie et le chiffre prendra le numéro suivant". Etant incapable d'écire le code, je me permets de vous poster ma demande.

Je m'explique :

j'ai des numéros de série qui commencent tous par une lettre :
F0674101235
F0674101236
F0674101237

naturellement je ne peux pas me servir de la poignée de recopie pour que les numéros se suivent.

Petite précision : je devrais pouvoir me servir de la macro selon le besoin car naturellement les séries se suivent mais ne se ressemblent point; par exemple :
je peux avoir :
F0674101235
F0674101236
F0674101237
F0674101350
F0674101351
F0674101352

J'espère avoir été claire.
Je vous remercie à l'avance pour votre aide.
 

job75

XLDnaute Barbatruc
Re : Poignée de recopie

Bonjour le fil, le forum,

J'ai pensé à une recopie par double sélection : touche Ctrl enfoncée.

Le début de la macro :

Code:
If Selection.Areas.Count <> 2 Then Exit Sub
Dim n As Double, origin As Range, cel As Range
Range(Selection.Areas(1), Selection.Areas(2)).Select

Les 2 fichiers, avec ou sans copie des formats.

A+
 

Pièces jointes

  • Recopie Double Selection (1).xls
    40.5 KB · Affichages: 75
  • Recopie Double Selection (2).xls
    41 KB · Affichages: 64

job75

XLDnaute Barbatruc
Re : Poignée de recopie

Re,

Avec une liste de validation en F2 peut-être...

Edit : choix entre les 3 types de recopie en utilisant Switch

A+
 

Pièces jointes

  • Recopie Double Selection (4).xls
    43 KB · Affichages: 62
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Poignée de recopie

Bonjour tout le monde,

... Je reviens quelques pas en arrière (parce que quand tu es lancé job, tu roules tout seul :p Tu as dormi entre 00h17 et 9h48 ??)

Bref, sous 2003, la petite icône à laquelle je pensais est celle illustrée en pièce jointe (trouvée sur le net .. au moins je suis certain que quelqu'un d'autre l'a vue !)
 

Pièces jointes

  • PoigneeRecopie2003.jpg
    PoigneeRecopie2003.jpg
    13.2 KB · Affichages: 52

jp14

XLDnaute Barbatruc
Re : Poignée de recopie

Bonjour le fil

A la lecture des post je me suis aperçu que mon code comportait des erreurs.
Ci dessous un nouveau code qui ressemble plus à la méthode autofill.

La procédure teste si la case n'est pas vide, et si la case suivante est vide.
Un message indique si le nombre de caractères après incrémentation est supérieur au nombre initial.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim val1 As Currency
Dim val1n As String
Dim i As Integer
Dim li As Byte

If Target = "" Then Exit Sub

If Target.Offset(1, 0).Value = "" Then
li = Len(Target)
For i = 1 To li
    If IsNumeric(Mid(Target, i, 1)) Then Exit For
Next i
li = li - (i - 1) ' nb de chiffres
val1 = CCur(Replace(Target, Left(Target, i - 1), "") + 1)
Select Case Len(CStr(val1))
    Case li
        val1n = CStr(Mid(Target, 1, i - 1) & val1)
    Case Is > li
        Select Case MsgBox("Le code  qui va être écrit n'a pas le même nombre de carractère" _
                   & vbCrLf & "Ancien code     :" & Target _
                   & vbCrLf & "Nouveau code :" & Mid(Target, 1, i - 1) & val1  _
                   & vbCrLf & "" _
                   , vbOKCancel Or vbInformation Or vbDefaultButton1, Application.Name)

        Case vbOK
            val1n = CStr(Mid(Target, 1, i - 1) & val1)
        Case vbCancel
            Exit Sub
        End Select
        
    Case Is < li
        val1n = CStr(Mid(Target, 1, i - 1) & String(li - Len(CStr(val1)), "0") & val1)
End Select

Target.Offset(1, 0).Value = val1n

' reproduire la mise en forme
    Target.Copy
    Target.Offset(1, 0).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End If
End Sub

A tester

JP
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
141

Statistiques des forums

Discussions
312 220
Messages
2 086 381
Membres
103 199
dernier inscrit
ATS1