XL 2016 Copier / Coller suivant choix

karinette

XLDnaute Occasionnel
Bonjour aux experts,

J'essaye en vain de créer une macro, mais j'abandonne et préfère vous consulter pour avancer dans mon fichier.
Voila mon problème :
J'ai un classeur, avec une plage de cellule où lorsqu'on double clic, un userform apparait.
Je peux choisir d'inscrire A, B ou C dans ma cellule.
Ce que j'aimerais faire, c'est suivant le nombre qu'on inscrit dans un textbox (disons "X"), coller la valeur choisi (A, B ou C) toute les "X" cellules dans une même ligne.
Par exemple, je choisi "A" en C6, et je met la valeur 5 dans mon textbox. Le choix "A" sera collé 5 cellules plus loin (en H6), puis 5 cellules plus loin (en M6) etc ...
Par contre cette fonction s'arrête arrivé à la colonne AB.
J'espère avoir été clair.

Je vous remercie d'avance de votre aide.
 

Pièces jointes

  • Classeur1.xlsm
    20 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Karinette,
Un essai en PJ avec :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("$B$2:$AA$26")) Is Nothing Then
    Dim Choix$, Saut%
    Application.ScreenUpdating = False
    Periode.Show
    Choix = [A1]: Saut = [B1]: [A1] = "": [B1] = ""
    If Choix = "" Or Saut = 0 Then Exit Sub
    For C = Target.Column To 27 Step Saut
        Cells(Target.Row, C) = Choix
    Next C
    [A1].Select
    Application.ScreenUpdating = True
End If
End Sub
Les cellules A1 B1 stockent en provisoire les valeurs du userform.
 

Pièces jointes

  • Classeur1 (1).xlsm
    21.8 KB · Affichages: 2

job75

XLDnaute Barbatruc
Bonjour karinette,

Voyez le fichier joint et le code de l'UserForm :
VB:
Private Sub CommandButton1_Click()
ActiveCell = "A"
End Sub

Private Sub CommandButton2_Click()
ActiveCell = "C"
End Sub

Private Sub CommandButton3_Click()
ActiveCell = "B"
End Sub

Private Sub CommandButton4_Click() 'Valider
TextBox1 = Abs(Int(Val(TextBox1)))
If TextBox1 = 0 Then TextBox1 = "": TextBox1.SetFocus: Exit Sub
Dim c As Range, x$, pas%
Set c = ActiveCell
x = c
If x = "" Then MsgBox "Cliquez sur A B ou C...": Exit Sub
pas = TextBox1
While c.Column <= 27 'colonne AA
    c = x
    c.Interior.ColorIndex = 6 'jaune
    Set c = c(1, 1 + pas)
Wend
Unload Me
End Sub

Private Sub CommandButton5_Click() 'RAZ
With [B2:AA26]
    .ClearContents
    .Interior.Color = RGB(255, 242, 204)
End With
End Sub
A+
 

Pièces jointes

  • Classeur(1).xlsm
    19.3 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo