XL 2021 Problème code VBA

Jaco24

XLDnaute Nouveau
Bonjour,

J'ai été aidé par @Phil69970 pour la mise au point d'un code VBA qui copie et colle les valeurs inscrit dans observation entre I14 et I87 qui prends la ligne de celui ci entre C14 et C87 pour ensuite les coller plus bas entre C91 et C111 pour les lignes et pour les observations entre 91 et 111. Celui ci appliquer une régler qui les rangé dans l'ordre des ligne 1,2,3 avec un ordre de priorité quand celui ci était jaune avec se signe "§", il le mettait en premier et lister les suivant et si il y avait que des notes sans priorité alors alors il lister après les priorité en rajoutant un code implémenté à la feuille directement ceci la fait buger pourquoi je ne sais pas mais ce code en question consiste à capter les élément écrit avec le signe § entre D14 et D87 et si l'observateur écrit dans une case I par exemple I25 et qu'il y a un signe § dans D25 alors il rajoute devant le texte inséré dans I25 un signe "§".

Donc mon problème aujourd'hui et que la feuille fonctionne pas donc je suis bloqué

Merci à vous
 

Pièces jointes

  • Exemple 1.xlsm
    69.4 KB · Affichages: 2
Dernière édition:

Jaco24

XLDnaute Nouveau
Alors j'ai remis plusieurs fois ton code dessus vendredi et tout explosé et supprimé les colonne en dessous ancien bug réglé ensemble ET LA il fonctionne je vais m'arraché les cheveux. Par contre, un sujet persiste par rapport à la au copié collé si il y a moins de 21 éléments rentré dans le tableau. il me met le débogage avec : Pour ce faire, la taille des cellules fusionnées doit être identique et quand j'ai 21 observations ou plus, Il écrit valeur copié comme convenu
 

Phil69970

XLDnaute Barbatruc
Alors j'ai remis plusieurs fois ton code dessus vendredi et tout explosé et supprimé les colonne en dessous ancien bug réglé ensemble ET LA il fonctionne je vais m'arraché les cheveux
Donc cela fonctionne

Par contre, un sujet persiste par rapport à la au copié collé si il y a moins de 21 éléments rentré dans le tableau. il me met le débogage avec : Pour ce faire, la taille des cellules fusionnées doit être identique et quand j'ai 21 observations ou plus, Il écrit valeur copié comme convenu
Donc cela fonctionne pas !!

C'est très confus tes explications explique fournit un fichier avec des exemples qui plante etc......
 

Jaco24

XLDnaute Nouveau
Voici, un exemple quand il y a moins de 21 observation et celui bug sur le triage comme ci joints 4,7,34,27,1,2 donc il tri pas et après l'erreur qui demande un débogage

et quand le tableau détient 21 éléments ou plus celui ci n'affiche pas le code erreur et fonctionne parfaitement bien.

@Phil69970

merci encore
 

Pièces jointes

  • Exemple 1.xlsm
    69.7 KB · Affichages: 1

Phil69970

XLDnaute Barbatruc
@Jaco24

Déjà quand je vois ceci
1716278619040.png


Je me dis que c'est pas ce que j'ai fait !!!
Car dans mon fichier je vois cela !!!

1716278714594.png


Vois tu la différence !!!!

Donc je repose ma question est ce que cela fonctionne avec mon fichier quelque soit le nombre de d’éléments ?

PS: Je reviens cet après midi sur le site .
 

Jaco24

XLDnaute Nouveau
@Phil69970

oui sa fonctionne sur le tiens et oui je viens de capter la différence il n'agit pas pareille quand il est dans un module que dans la feuille.

Ensuite j'ai fait le test comme tu le préconises juste au dessus et bien sur en supprimant mon code VBA mais j'ai une erreur incompréhensible et quand je mets 20 observ avant le max ou moins sa fait n'importe quoi, j'observe que le triage par un peu partout par exemple 1,2,68,6,9,45... (et avec mon code la même chose)

Voici mon code si besoin
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ErrorHandler
    Dim cell As Range

    ' Vérifier si la modification a eu lieu dans la plage I14:I87
    If Not Intersect(Target, Range("I14:I87")) Is Nothing Then
        ' Parcourir chaque cellule dans la plage de la cible
        For Each cell In Intersect(Target, Range("I14:I87"))
            ' Vérifier si la cellule correspondante dans la colonne D contient le signe "§"
            If InStr(Range("D" & cell.Row).Value, "§") > 0 Then
                ' Si la cellule contient du texte et ne commence pas déjà par "§", ajouter le signe "§"
                If cell.Value <> "" And Left(cell.Value, 1) <> "§" Then
                    cell.Value = "§" & cell.Value
                End If
            End If
        Next cell
    End If
    Exit Sub

ErrorHandler:
    MsgBox "Erreur " & Err.Number & " : " & Err.Description
End Sub

et le code erreur qui s'affiche

1716284757349.png

et ci joint le dossier test avec ce que tu as dit
 

Pièces jointes

  • Test64.xlsm
    65.8 KB · Affichages: 2
Dernière édition:

Discussions similaires

Réponses
6
Affichages
502

Statistiques des forums

Discussions
313 197
Messages
2 096 109
Membres
106 500
dernier inscrit
mmontagu