Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Résolu] Auto-complétion continue avec VBA

Max60150

XLDnaute Junior
Bonjour le forum,

J'ai encore une fois du mal à expliquer mo problème dans le titre, bref, j'ai toute la place qu'il me faut ici !

J'ai mis en pièce jointe un petit fichier pour illustrer mon problème.

En gros, j'utilise ce code:

Code:
Private Sub CheckBox1_Change()
    If CheckBox1 = True Then
        Range("D6") = Range("D2")
        Range("D7") = Range("D3")
    End If
    If CheckBox1 = False Then
        Range("D6") = ""
        Range("D7") = ""
End Sub

Si je coche ma checkbox, D6 et D7 prennent la valeur de D2 et D3.
Mais ensuite plus rien, le lien n'est pas conservé et je je modifie D2 ou D3 rien ne se passe en D6 D7.

J'aimerai pouvoir switcher entre deux modes:
- Mode D6 D7 = D2 D3: Si je coche ma checkbox, D6 et D7 se verrouillent et se complètent automatiquement avec la valeur que j'entre pour D2 D3, et si je modifie D2 D3 par la suite, D6 D7 est mis à jour en temps réel.
- Mode D6 D7 différents de D2 D3: Si je décoche ma box, je rompt le lien entre mes cellules. D6 D7 se déverrouillent, et c'est moi qui doit entrer les valeurs de D2, D3, D6 et D7.

Voila, j'espère être clair, je suis dispo pour les questions si besoin !

Merci d'avance
 

Pièces jointes

  • XLD.xlsx
    11.7 KB · Affichages: 27
  • XLD.xlsx
    11.7 KB · Affichages: 33
  • XLD.xlsx
    11.7 KB · Affichages: 29
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Auto-complétion continue avec VBA

Bonjour Max60150

Si j'ai bien compris, ceci devrait aller:
VB:
Private Sub CheckBox1_Change()
If CheckBox1 = True Then
    Range("D6").FormulaLocal = "=$D$2"
    Range("D7").FormulaLocal = "=$D$3"
Else
    Range("D6") = ""
    Range("D7") = ""
End If
End Sub

Cordialement
 
Dernière édition:

Pyton

XLDnaute Nouveau
Re : Auto-complétion continue avec VBA

essaye comme ça
Code:
Private Sub CheckBox1_Change()
    If CheckBox1 = True Then
        Range("D6") = Range("D2")
        Range("D7") = Range("D3")
    ElseIf CheckBox1 = False Then
        Range("D6") = ""
        Range("D7") = ""
    End If
End Sub

Oup! j'avais pas bien compris
 
Dernière édition:

Max60150

XLDnaute Junior
Re : Auto-complétion continue avec VBA

Bonjour Efgé, Bonjour Pyton !
Et merci pour la rapidité

La solution d'Efgé fonctionne parfaitement, merci beaucoup
Je me doutais que j'étais pas loin de la solution !

J'ai quand même testé la solution de Pyton par curiosité, mais pas d'évolution comparé a mon code de départ !

Merci à vous deux, bon après midi !
 

Efgé

XLDnaute Barbatruc
Re : [Résolu] Auto-complétion continue avec VBA

RE,
Bonjour Pyton

La même en plus concise:
VB:
Private Sub CheckBox1_Change()
Range("D6:D7").FormulaLocal = IIf(CheckBox1, "=$D2", "")
End Sub

Cordialement
 

Discussions similaires

Réponses
4
Affichages
902
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…