décalagede lignes lors de la suppression par userform

letroubadour

XLDnaute Occasionnel
Bonsoir a tous

je viens a nouveau vers vous pour résoudre un problème sue mon fichier

si par le formulaire je sélectionne un agrément et que je le supprime, la ligne correspondante s'efface sur la feuill1 mais laisse la ligne vide il n'y a pas de décalage des données vers le haut et sur la feuill3 la ligne correspondante à l'agrément supprimé , n'est pas supprimé.

Je joints le fichier

si quelqu'un peu jeter un coup d'oeil

merci

RAPHAEL
 

Pièces jointes

  • essai.xlsm
    161.7 KB · Affichages: 47
  • essai.xlsm
    161.7 KB · Affichages: 61
  • essai.xlsm
    161.7 KB · Affichages: 56

romain9

XLDnaute Nouveau
Re : décalagede lignes lors de la suppression par userform

Bonsoir,

Dans la macro Cmdsupprimer_Click() j'ai remplacé le clearcontents des deux lignes .Range("B" & Me.LBnoagrement.ListIndex + 3 & ":G" & Me.LBnoagrement.ListIndex + 3).ClearContents par .entirerow.delete shift:=xlshiftdown

Par contre, je ne sais pas pour vous, mais quand j'exécute la macro j'ai l'erreur de compilation suivante : "Projet ou bibliothèque introuvable" ce qui arrête la macro sur la procédure workbook_Open() et empêche donc la suppression de la ligne sur la feuille 3.

Je sais pas d'où vient cette erreur par contre.

Cordialement.
 

Pièces jointes

  • essai.xlsm
    146.8 KB · Affichages: 35
  • essai.xlsm
    146.8 KB · Affichages: 35
  • essai.xlsm
    146.8 KB · Affichages: 41

letroubadour

XLDnaute Occasionnel
Re : décalagede lignes lors de la suppression par userform

Bonsoir

merci pour ton aide , pour exécuter la macro il doit te manquer une bibliothèque manquante dans "référence"

pour contre pour avoir essayé ça me supprime bien la bonne ligne sur la feuille 1 et pas sur sur la feuille 3

si tu as une autre solution je suis preneur

MERCI

RAPHAEL
 

romain9

XLDnaute Nouveau
Re : décalagede lignes lors de la suppression par userform

En ce qui concerne la référence manquante, j'ai été regardé dans le menu référence mais j'ai rien remarqué de spécial.

Sinon pour revenir à ton problème, je pense que la source réside dans la macro événementielle worksheet_change() puisque j'ai dû contourner le problème de l'erreur de compilation en mettant tout le code de cette macro sous forme de commentaire.

Après ça j'ai lancé la macro et de mon côté ça a bien supprimé la ligne dans les deux feuilles de calcul ce que tu peux vérifier dans le fichier joint à ce message.
 

Pièces jointes

  • essai.xlsm
    143.9 KB · Affichages: 33
  • essai.xlsm
    143.9 KB · Affichages: 37
  • essai.xlsm
    143.9 KB · Affichages: 28
Dernière édition:

letroubadour

XLDnaute Occasionnel
Re : décalagede lignes lors de la suppression par userform

Bonjour

désolé de n'avoir pas pu répondre avant, j'étais absent ce week end .
Je viens d'essayer ton fichier effectivement , la ligne est bien supprimée sur les 2 feuilles , mais ça supprime la ligne entièrement ainsi que les données qui sont sur cette même ligne. Si tu regarde a droite des données ont été supprimées et mon tableau passe de la ligne 301 à la 300 , c'est pour cela qu'il faut utiliser le fonction effacer;

Sinon pour revenir à ton problème, je pense que la source réside dans la macro événementielle worksheet_change() puisque j'ai dû contourner le problème de l'erreur de compilation en mettant tout le code de cette macro sous forme de commentaire.

Dans le message d'erreur ca parle de focus , c'est la première fois que j'entends parler de ça

merci

RAPHAEL
 

letroubadour

XLDnaute Occasionnel
Re : décalagede lignes lors de la suppression par userform

Bonjour

je joints mon dernier fichier, effectivement , si on met la macro en commentaire les lignes s'efface correctement

Code:
'Private Sub Worksheet_Change(ByVal Target As Range)
'If Application.Intersect(Target, Columns(5)) Is Nothing Then Exit Sub
'If Target - Date > Cells(2, 15) Then Cells(Target.Row, 8) = ""
'End Sub

je n'ai toujours pas trouvé la solution

merci

RAPHAEL
 

Pièces jointes

  • copie.xlsm
    262.3 KB · Affichages: 50
  • copie.xlsm
    262.3 KB · Affichages: 57
  • copie.xlsm
    262.3 KB · Affichages: 57

romain9

XLDnaute Nouveau
Re : décalagede lignes lors de la suppression par userform

Proposition de solutions liée au problème de ta macro événementielle. Ce que je fais c'est que je la désactive temporairement en inscrivant dans la macro Cmdsupprimer_Click Application.EnableEvents = false puis juste après la suppression je la réactive en inscrivant Application.EnableEvents = true
Code:
 Application.EnableEvents = False
        With WS
          .Range("B" & Me.LBnoagrement.ListIndex + 3 & ":H" & Me.LBnoagrement.ListIndex + 3).Delete
        End With
      Set WS = ThisWorkbook.Worksheets("Feuil3")
        With WS
          .Range("B" & Me.LBnoagrement.ListIndex + 3 & ":G" & Me.LBnoagrement.ListIndex + 3).Delete
        End With
    Application.EnableEvents = True
D'après ce que j'ai pu comprendre de la logique de fonctionnement de la macro, je pense que cette opération ne devrait pas affecter ou fausser les résultats sur ta feuille de calcul.
 

Pièces jointes

  • copie.xlsm
    262.1 KB · Affichages: 39
  • copie.xlsm
    262.1 KB · Affichages: 42
  • copie.xlsm
    262.1 KB · Affichages: 37

letroubadour

XLDnaute Occasionnel
Re : décalagede lignes lors de la suppression par userform

Merci Romain Ca progresse bien

il y a un soucis maintenant au niveau de la colonne H de la feuille 3 , si je supprime une ligne celle ci est bien supprimée mais ça supprime également une cellule dans la colonne H "REF"

Code:
 Set WS = ThisWorkbook.Worksheets("Feuil3")
        With WS
          .Range("B" & Me.LBnoagrement.ListIndex + 3 & ":G" & Me.LBnoagrement.ListIndex +

je pense que ca doit clocher au niveau de ":G"

merci
 

romain9

XLDnaute Nouveau
Re : décalagede lignes lors de la suppression par userform

En effet, il fallait remplacer le ":G" par ":H" car la suppression des données en F et G qui servent à renseigner les arguments de la fonction crée une erreur au niveau de la formule.
J'ai fais la correction dans le code de la macro.
 

Pièces jointes

  • copie (2).xlsm
    262 KB · Affichages: 35

letroubadour

XLDnaute Occasionnel
Re : décalagede lignes lors de la suppression par userform

Maintenant je trouve un autre problème je pense que se sera le dernier

avec le fichier joint lorsque je supprime un agrément ça supprime bien la ligne correspondante en feuille 1 et 3, seulement ça me supprime la formule en colonne E feuille 3 si j'ajoute un agrément avec la formulaire la cellule E Feuille 3 correspondant a l'enregistrement est vide , normal la formule a disparue

comment faire pour supprimer une ligne sans supprimer les formules ?

MERCI

RAPHAEL
 

Pièces jointes

  • copie.xlsm
    286.4 KB · Affichages: 39
  • copie.xlsm
    286.4 KB · Affichages: 47
  • copie.xlsm
    286.4 KB · Affichages: 42

romain9

XLDnaute Nouveau
Re : décalagede lignes lors de la suppression par userform

J'ai procédé à la correction dans le code de la macro Tri_agrements.

Code:
With ThisWorkbook.Worksheets("Feuil3")
      .Unprotect "281"
        xlgn = .Range("B" & .Rows.Count).End(xlUp).Row
        Set rng = .Range("B3:D" & xlgn)
        rng.Sort Key1:=.Range("B3"), Order1:=xlAscending
    End With
    Application.ScreenUpdating = True

Au niveau de la ligne Set Rng, le "D" remplace le "G". En effet il est inutile de faire un tri sur une plage de cellules contenant des formules surtout si la dite formule contient une référence à une cellule située dans une autre feuille du classeur car la référence de la cellule n'est pas modifiée lors du tri contrairement aux références des cellules de la feuille dans laquelle est tapée la formule.
 

Pièces jointes

  • copie.xlsm
    274.7 KB · Affichages: 36
  • copie.xlsm
    274.7 KB · Affichages: 37
  • copie.xlsm
    274.7 KB · Affichages: 46

romain9

XLDnaute Nouveau
Re : décalagede lignes lors de la suppression par userform

J'ai apporté les modifications au code afin que tu puisses envoyer une lettre en AR.
 

Pièces jointes

  • copie.xlsm
    275.2 KB · Affichages: 50
  • copie.xlsm
    275.2 KB · Affichages: 49
  • copie.xlsm
    275.2 KB · Affichages: 53

letroubadour

XLDnaute Occasionnel
Re : décalagede lignes lors de la suppression par userform

Merci Romain

toujours des problèmes de trie lors de la suppression d'une ligne , il ne faut pas effacer les données des cellule de la colonne E et il faut trier les colonnes F et G en s'arretant a D ca ne fonctionne pas

je pense que c'est lorsque l'on rajoute des données

bonne soirée
 

Pièces jointes

  • envoie.xlsm
    181.7 KB · Affichages: 61
  • envoie.xlsm
    181.7 KB · Affichages: 69
  • envoie.xlsm
    181.7 KB · Affichages: 74
Dernière édition:

romain9

XLDnaute Nouveau
Re : décalagede lignes lors de la suppression par userform

J'ai procédé aux corrections nécessaires :
Ajout de la ligne de code suivante dans les procédures Cmdmodifier_Click() et Enregistrer ()
Code:
.Cells(i, 5) = " " & .Range("H" & i) & " " & TBnomresponsable & Chr(10) & " " & TBadretab & Chr(10) & " " & TBcodpost & " " & TBlocalite

Dans le code j'ai aussi remis le tri sur les colonnes F et G. Et enfin j'ai supprimé les formules de la colonne E de la feuille 3 par un copier coller de valeurs, la ligne de code que j'ai mis au-dessus jouera le même rôle que la formule.
 

Pièces jointes

  • envoie.xlsm
    167.5 KB · Affichages: 97
  • envoie.xlsm
    167.5 KB · Affichages: 119
  • envoie.xlsm
    167.5 KB · Affichages: 123
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 241
Membres
103 162
dernier inscrit
fcfg