XL 2019 Worksheet_change fait planté excel

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 !

thespeedy20

XLDnaute Occasionnel
Bonjour,

Ma macro actuellement se trouve en worksheet_selection change et quand je la passe en worksheet selection, excel disparaît, en bref plante...

Pouvez-vous me dire pourquoi ? Merci


VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plg As Range
Dim valeur
Dim valeur_2
    
    
    Set Plg = Sheets("Professeurs").Range("A1:G39")
    
    With Sheets("Absence formulaire")
        
        If .Range("A10").Value <> "" Then
                    
            .Range("B13").Value = WorksheetFunction.VLookup(.Range("A10").Value, Plg, 2, False)
            
        valeur = WorksheetFunction.VLookup(.Range("A10").Value, Plg, 3, False)
            
            Cells(17, 4).Value = Mid(valeur, 1, 1)
            For i = 1 To 6: .Cells(17, i + 5).Value = Mid(valeur, i + 1, 1): Next i
            For i = 1 To 4: .Cells(17, i + 12).Value = Mid(valeur, i + 7, 1): Next i
        
        valeur_2 = WorksheetFunction.VLookup(.Range("A10").Value, Plg, 4, False)
        
             For j = 1 To Len(valeur_2): .Cells(21, j + 3).Value = Mid(valeur_2, j, 1): Next j
      
         Else
        
         .Range("B13").Value = ""
         .Range(.Cells(17, 4), .Cells(17, 16)).ClearContents
         .Range(.Cells(21, 4), .Cells(21, 14)).ClearContents

End If
End With
End Sub

Oli
 

Pièces jointes

Bonjour le fil,

Juste pour info
Tu peux simplifier la fin de ton code (l'effacement des cellules) comme suit
VB:
Sub Simplification()
Range("B13,D17:P17,D21:N21").ClearContents
'ou
Range("B13,D17:P17,D21:N21") = Empty
'ou
Range("B13,D17:P17,D21:N21") = ""
End Sub
 
Bonjour,

Ma macro actuellement se trouve en worksheet_selection change et quand je la passe en worksheet selection, excel disparaît, en bref plante...

Pouvez-vous me dire pourquoi ? Merci


VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plg As Range
Dim valeur
Dim valeur_2
 
 
    Set Plg = Sheets("Professeurs").Range("A1:G39")
 
    With Sheets("Absence formulaire")
     
        If .Range("A10").Value <> "" Then
                 
            .Range("B13").Value = WorksheetFunction.VLookup(.Range("A10").Value, Plg, 2, False)
         
        valeur = WorksheetFunction.VLookup(.Range("A10").Value, Plg, 3, False)
         
            Cells(17, 4).Value = Mid(valeur, 1, 1)
            For i = 1 To 6: .Cells(17, i + 5).Value = Mid(valeur, i + 1, 1): Next i
            For i = 1 To 4: .Cells(17, i + 12).Value = Mid(valeur, i + 7, 1): Next i
     
        valeur_2 = WorksheetFunction.VLookup(.Range("A10").Value, Plg, 4, False)
     
             For j = 1 To Len(valeur_2): .Cells(21, j + 3).Value = Mid(valeur_2, j, 1): Next j
   
         Else
     
         .Range("B13").Value = ""
         .Range(.Cells(17, 4), .Cells(17, 16)).ClearContents
         .Range(.Cells(21, 4), .Cells(21, 14)).ClearContents

End If
End With
End Sub

Oli
Bonjour,
"worksheet selection", n'existe pas
Tu veux certainement parler de "Worksheet_Change"
Une piste
La macro évènementielle de " Worksheet_Change" comporte généralement cette instruction en début de macro
Application.EnableEvents = False
et en fin de macro
Application.EnableEvents = True
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
510
Réponses
4
Affichages
201
Réponses
2
Affichages
210
Réponses
8
Affichages
236
Réponses
8
Affichages
480
Réponses
10
Affichages
291
Réponses
5
Affichages
241
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
178
Retour