probl. Sélection avec "select case"

  • Initiateur de la discussion Initiateur de la discussion mikepers
  • 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 !

mikepers

XLDnaute Occasionnel
Bonsoir le forum, merci à vous tous. ( une dernière question, puis je vous laisse tranquille pour cette semaine ...)
Encore des soucis, plus j'avance, plus je découvre, et plus les maudits bogues apparaissent...Damned!!!
Voilà t'y ^pas que maintenant c'est la très pratique fonction "sélect case" qui me fait taper dans le mur.
Je joint un fichier explicatif ( je ne comprends pas, je n'arrive pas à déplacer une zone de cellules sur une autre feuille, avec des options "sélect case"! Je n'ai pas utilisé "if-then-else" car mon fichier source comporte de nombreuses options et "sélect case " est parfait pour mon fichier, mais là j'avoue que ça coince. Le débogueur semble bloquer sur un simple "sélect - range", dès qu' une autre feuille est sollicitée. No comprendoooo.
Si qu'elqu'un a un avis ou une soluce, je vais gagner (encore) beaucoup de temps !!!
merci 1000 fois par avance.
 

Pièces jointes

Re : probl. Sélection avec "select case"

Bonjour MikePers, Zon,

Un petit complement d'information :

en effet, il n'est pas nécessaire de donner la dimension de la zone cible mais on précisera quand même l'objet ainsi le code pourra se présenter ainsi :

...
Sheet("Feuill2").Activate
ActiveSheet.Range("B8").Activate
...

A+

Jeannot
 
Re : probl. Sélection avec "select case"

Bonjour,
puisque personne ne t'a encore aidé je vais me lancer dans mon premier post !
Ta procedure n'est pas à la bonne place, il faut que tu créés un module et que tu y mettes ta procédure.
Il est normal que les instructions présente dans le code d'une feuille bloquent quand tu leur demande de changer de feuille.

P.S.: J'en profite pour féliciter et remercier tous les membres actifs de ce forum qui me font découvrir tout les jours les nombreuses fonctionnalités de VBA et xl !
 
Re : probl. Sélection avec "select case"

Bonjour Cubrik,

C'est vrai que de travaillé dans un module à part rend le process plus simple mais on peut être amener à gérer un process dans une feuille (le code que j'ai indiqué plus haut permet de resté dans une procédure private sur la feuille)

Jeannot
 
Re : probl. Sélection avec "select case"

Rebonjour,
il semblerai donc que tout le monde ai souhaiter répondre entre 8h52 et 8h53, donc il semblerai que ma réponse ai été anticipée par Pierrot93 dsl 🙂
Jeannot45 j'ai testé en ne faisant que copier le code dans un module sans autre modification que celle du CommanButton pour l'activer et il n'y a plus d'erreur. Mais je vais tester avec ton code !

Bonne journée à tous.
 
Re : probl. Sélection avec "select case"

Bonjour,

Corrige ta macro en la remplaçant par celle-ci
Code:
Private Sub CommandButton1_Click()
' déplacement de la 1
If MsgBox("Repositionner ?", _
vbYesNo + vbQuestion, "Confirmation") = vbYes Then
Application.ScreenUpdating = False
Select Case Range("B4").Value
Case "1"
With Sheets("feuil1")
.Activate
.Range("B7:D11").Copy Destination:=Worksheets("feuil1").Range("B23")
End With
Call Effacer
Case "B"
With Sheets("feuil1")
.Activate
.Range("B7:D11").Copy Destination:=Worksheets("feuil2").Range("B8")
End With
Call Effacer
Case "3"
With Sheets("feuil1")
.Activate
.Range("B7:D11").Copy Destination:=Worksheets("feuil3").Range("A1")
End With
Call Effacer
End Select
End If
Application.ScreenUpdating = True
End Sub

Si pb n'hésite pas

Edition : comme dit pour d'autres ici, tu peux aussi les placer dans un module en liant ton bouton à la macro principale (command_click). Dans ce cas, enlève les "Private"
 
Dernière édition:
Re : probl. Sélection avec "select case"

Salut le Forum

Just for the fun !

Code:
Private Sub CommandButton1_Click()
 
If MsgBox("Repositionner ?", _
    vbYesNo + vbQuestion, "Confirmation") = vbYes Then
 
Application.ScreenUpdating = False
 
With Sheets("feuil1")
    Select Case .Range("B4").Value
        Case "1"
            .Range("B7:D11").Copy Sheets("feuil1").Range("B23")
            Effacer
        Case "B"
            .Range("B7:D11").Copy Sheets("feuil2").Range("B8")
            Effacer
        Case "3"
            .Range("B7:D11").Copy Sheets("feuil3").Range("A1")
            Effacer
    End Select
End With
 
End If
    Application.ScreenUpdating = True
End Sub
 
---------------------------------------------------------------------
Private Sub Effacer()
    Sheets("feuil1").Range("B7:D11").ClearContents
End Sub

Mytå
 
- 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

Discussions similaires

Retour