Macro bloque fichier

Bonjour le Forum,

Je viens vers vous pour le problème suivant.

J’ai incorporé dans une feuille des codes divers qui fonctionnaient très bien.

Dim ok As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)

If ok = True Then Exit Sub

If Target.Count > 1 Then Exit Sub

If Not Application.Intersect(Target, Range("B15:B500")) Is Nothing Then

ok = True

If Target <> "" Then

Target.Offset(0, 3).Formula = "=VLOOKUP(B15:B500,ZONE!A2:B72,2,0)"

Target.Offset(0, 3).Formula = Target.Offset(0, 3).Value 'on fige la valeur dans la cellule

Else: Target.Offset(0, 3).ClearContents

'Else: Target.EntireRow.Delete

End If

End If

ok = False

If Target.Count > 1 Then Exit Sub

Select Case Target.Column

Case 2 To 7, 12, 14 ' Colonne B, G, L et N

If Target.Value <> UCase$(Target.Value) Then

Target.Value = UCase$(Target.Value)

End If

End Select

End Sub

J’ai essayé de rajouter une ligne de code pour que la première lettre des phrases soit en majuscule, mais avec possibilité de mettre des majuscules dans des phrases.

Case 8 To 9, 11 ' Colonne H, I et K

If Target.Value <> UCase$(Target.Value) Then

Target.Value = UCase$(Left(Target.Value, 1)) & Mid(Target.Value, 2)

Le problème est que lorsque j’écris dans la colonne 11 et que je fais Tab pour passer à la colonne 12, un message me signale mémoire insuffisante et bloque complètement le fichier.

Pourriez-vous m’aider

Je vous en remercie d’avance.

Bonjour

Veille à utiliser les balises de code lorsque tu postes du code VBA.

Possible de voir le fichier sans données confidentielles ?

Crdlt

Bonjour,

Teste ceci pour voir :

Dim ok As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)

    If ok = True Then Exit Sub

    With Target

        If .Count > 1 Then Exit Sub

        If Not Application.Intersect(Target, Range("B15:B500")) Is Nothing Then

            ok = True

            If .Value <> "" Then

                .Offset(0, 3).Formula = "=VLOOKUP(B15:B500,ZONE!A2:B72,2,0)"
                .Offset(0, 3).Formula = .Offset(0, 3).Value 'on fige la valeur dans la cellule

                Else: .Offset(0, 3).ClearContents

                'Else: Target.EntireRow.Delete
            End If

        End If

        Select Case .Column

            Case 2 To 7, 12, 14: .Value = UCase(.Value)
            Case 8 To 9, 11: .Value = UCase(Left(.Value, 1)) & Mid(.Value, 2)
            'voir aussi ".Value = WorksheetFunction.Proper(.Value)" <-- première lettre de chaque mot en majuscule

        End Select

        ok = False

    End With

End Sub

Bonjour Dan, Theze,

Merci de suivre mon problème.

Dan, je joins le fichier, complètement vidé de toutes les feuilles et données sensibles.

Theze, j'ai placer le code à la place de celui que j'avais et j'ai le même résultat: Mémoire insuffisante et blocage du fichier.

Merci encore pour votre aide.

8logbook.xlsm (109.45 Ko)

Re

Pas de soucis de mon coté avec le fichier posté.

Mais il y a une chose à tester. Désactive la macro qui se trouve dans THISWORKBOOK et qui s'exécute lorsque tu ouvres le classeur. Enregistre le fichier puis après l'avoir fermé, réouvre le et refais les opérations que tu décris

A te relire

Dan,

Re bonjour,

Je viens de faire le test comme tu me l'as expliqué et pour moi c'est toujours le même problème.

Ce que je ne comprend pas c'est que tout fonctionne avant de mettre ce bout de code.

Merci encore pour ton aide .

Dan, Theze

J'ai trouvé l'origine de mon problème.

Je me demandais pourquoi après avoir placé des données en colonne 11, si je faisait enter cela fonctionnait et quand je faisait Tab, tout se bloquait.

En colonne 12, j'ai placé une validation pour forcer l'utilisation d'un mot + majuscules forcées. Si j'enlève cette validation cela fonctionne.

J'espère que vous verrez ma réponse, mais de toutes façon, encore merci pour votre aide si précieuse dans le suivi de toutes mes demandes.

Bonne journée à vous.

Je ne sais pas comment faire dans ce cas, dois-je attendre votre réponse ou puis-je déjà valider ce post ?

Re,

Parfait si le souci est trouvé et résolu

Pour cloturer le fil, clique sur la case à cocher vert à coté du bouton EDITER

Bonne journée

Crdlt

Rechercher des sujets similaires à "macro bloque fichier"