Suppression de contenu de cellules en partant de la fin du tableau Excel

Bonjour à tous,

Un petit problème se présente à moi et le voici.

J'ai un fichier excel qui présente plusieurs feuilles qui sont amenées à être remplies. Ce qui est écrit sur ces feuilles doit être tracé sur une autre feuille (audit trail).

Peut importe où l'on écrit sur une feuille ce sera tracé dans l'audit trail.

Comme vous pouvez le voir dans le code ci dessous je créé plusieurs lignes et lorsque ces lignes ce créé ça le trace dans l'audit trail et je ne souhaite pas que ça le trace.

Ce que je n'arrive pas à modéliser dans mon petit cerveau, c'est comment supprimer la trace de la création de ces lignes sans effacer ce qui a été tracer au préalable dans l'audit trail ?

Je pensais partir de la fin du tableau excel puisqu'il a un nombre de ligne fini (nombre de lignes totales : 1048576) et pouvoir remonter jusqu'à la création de ces fameuses lignes.

Je crois que mon texte n'est pas très clair mais ça reste compliqué à expliquer comme ça juste par le texte.

Merci pour les retours que vous pourrez me faire !

Private Sub CoB14_Click()

'suivant
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim i, j, k As Integer
i = TB1.Value

Feuil5.Visible = True
Feuil5.Select
Selection.Show

Feuil5.Range("B12:F12").Locked = False

For j = 1 To i
    Feuil5.Range("B12:F12").Interior.ColorIndex = 2
    Feuil5.Range("B12:F12").Font.Bold = False
    Feuil5.Rows(13).Insert Shift:=x1Down
    Feuil5.Range("B12:F12").Interior.Color = RGB(217, 217, 217)
    Feuil5.Range("B12:F12").Font.Bold = True
    Feuil5.Range("A14").Value = i - j + 1
Next j

Feuil5.Range("B12:F12").Locked = True

Feuil5.Rows(13).Delete Shift:=x1Down
Feuil5.Range("B13").Select
UF3.Hide

'suppression audit trail suite à la création du tableau
Feuil9.Rows("2:1048576").ClearContents
Feuil9.Columns(4).NumberFormat = "General"
Feuil9.Columns(5).NumberFormat = "General"

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

Légende :

TB1 = TextBox sur UF3 (UserForm)

Feuil5 = Feuille où l'on insert les lignes

Feuil9 = Feuille où tout est tracé

Hello,

Je pensais partir de la fin du tableau excel puisqu'il a un nombre de ligne fini (nombre de lignes totales : 1048576) et pouvoir remonter jusqu'à la création de ces fameuses lignes.

Oui tu peux partir d'en bas de la feuille et remonter.

En revanche, la question c'est comment tu fais dans ton fichier pour identifier les lignes à supprimer de celles à ne pas supprimer ?

Bonjour,

Les lignes qui sont à supprimer sont :

i = TB1.Value

post un fichier exemple ce sera + simple

Voici le fichier en question.

Le problème se porte sur la UserForm qui se nomme UF3.

2xsi-dev.xlsm (133.15 Ko)

dans tb1 tu rentre quoi comme info ?

Dans TB1 je saisis le nombre de ligne que je veux insérer. C'est un fichier excel à des fins analytiques en laboratoire. Le nombre de lignes insérées correspond au nombre d'échantillons analysés.

dsl mais je comprends pas tout ....

Tu veux supprimer les lignes que tu ajoutes ?

Je pense qu'il vaut mieux éviter de les ajouter ... Avec une case à cocher dans ton USF3 par exemple.

Si coché alors ajoute les lignes sinon rien

La "Feuil9" qui s'appelle "Audit Trail" permet de tracer tout ce qui est écrit sur n'importe qu'elle feuille.

Sur la "Feuil3" qui s'appelle "Vérification S121 MFI" je saisi des données qui vont donc être tracées sur la "Feuil9".

Par exemple, je saisi : 10 dans la cellule C6, ça sera écrit sur la "Feuil9" que j'ai écris 10 dans la cellule C6 de la feuille "Vérification S121 MFI".

Ca trace également les suppressions de données. Donc la saisie sur la "Feuil9" est dépendante du nombre de saisies faites sur la feuille "Vérification S121 MFI" mais cette valeur n'est pas une valeur finie, il s'agit d'une variable.

Ensuite une fois que l'on a saisie sur la feuille "Vérification S121 MFI" on arrive en 1er lieu sur la UF1 puis sur UF3 où l'on doit saisir un chiffre entier (par exemple 5).

Une fois ce chiffre saisie, en cliquant sur suivant tu vas insérer un nombre de lignes équivalent au chiffre que tu as saisie. Cette insertion s'effectue sur la "Feuil5" qui s'appelle "BA MFI 1mLL".

Lorsque ces lignes s'insèrent sur la "Feuil5", des valeurs se saisissent sur la "Feuil9" or ce qui est saisie lors de l'insertion de ces lignes je ne veux pas que cela apparaisse sur la "Feuil9".

En résumé sur la "Feuil9" il y a "x" valeurs de saisie (variable, x valeurs = x lignes sur la "Feuil9") + "i" valeurs (nombre connu, i valeurs = i lignes sur la "Feuil9")) sur une plage de 1048576 lignes sur excel.

J'espère avoir été un peu plus précis.

J'ai trouvé une solution à mon problème.

Voici l'idée :

Sélectionner la dernière ligne non vide.

Récupérer le numéro de ligne de la ligne active.

Sélectionner le Range souhaité, càd entre la dernière ligne non vide et le nombre de ligne ajoutée.

Voilà le code :

Dim Ligne As Integer

i = UF3.TB1.Value

Feuil9.Range("A" & Rows.Count).End(xlUp).Select
Ligne = ActiveCell.Row
Feuil9.Range(Rows(Ligne), Rows(Ligne - (i))).ClearContents

PS: Est-ce que quelqu'un peut mettre le sujet en "validé" car comme c'est mon propre message qui clôture le sujet je ne peux pas faire l'action nécessaire, s'il vous plait ?

Nickel bravo

a+

Rechercher des sujets similaires à "suppression contenu partant fin tableau"