Modification contenu ligne en VBA

Bonjour,

J'ai crée un userform avec un bouton de validation qui renvoie les données choisies dans un tableau et un bouton de suppression.

Mon souci est le suivant : je n'arrive pas à faire en sorte qu'en cliquant sur le bouton supprimer il m'affiche la liste des données déjà rentrées et que l'on puisse soit supprimer le contenu de la donnée sélectionnée ou bien de modifier le contenu de la donnée sélectionnée.

Je mets en PJ un exemple de mon programme.

Si quelqu'un peut m'aider je lui serais très reconnaissant

Bonjour et bienvenu(e)

Pour commencer

Merci pour ta réponse,

Ton fichier me supprime la ligne entière alors que moi je veux simplement effacer son contenu sans toucher au formule, ce que j'ai réussi à faire en utilisant le code :

i = Worksheets("L2bis").Range("A3").End(xlDown).Row

Worksheets("L2bis").Range("A" & i & ":X" & i).ClearContents

Le seul problème c'est que je supprime la dernière ligne ajoutée avec ce bout de code et j'aimerais pouvoir sélectionner parmi la liste de données rentrées la donnée à supprimer dans "RS11" sans supprimer les formules. J'espère que tout ça est clair

Bonjour

Expliques moi

Si tu effaces la ligne, tu vas avoir une ligne vide dans ton tableau (évidence même), et cela ne vas pas te gêner pour la suite ?

Avec le code que j'ai fourni plus haut ça supprime bien mon contenu de la dernière ligne et ça réécrit par dessus donc aucun souci concernant la ligne vide

Bonjour

Justement comme tu veux te déplacer dans la base et effacer la ligne (l'enregistrement) que tu veux, ce n'est pas forcément la dernière ligne qui sera effacé

Ou alors j'ai mal compris (ce qui ne m'étonnerai pas) ce que tu veux faire

D'après ce que je comprend maintenant

Tu veux modifier les données de la dernière ligne (et de celle-ci seulement) ?

Le code que j'ai précedemment donné efface seulement la dernière ligne ajoutée effectivement. MAIS ce n'est pas ce que je cherche à faire, je pense que tu as compris que je veux un code qui me permet de supprimer n'importe quelle ligne qui a été ajoutée

Bonjour

On tourne en rond là

Bouillou a écrit :

permet de supprimer n'importe quelle ligne qui a été ajoutée

Donc tu auras des "trous" dans ta base de donnée

Ahhh d'accord je vois qu'on s'est pas compris ^^ Ben j'aimerais bien trouver quelque chose qui remonte la ligne suivante aussi du coup quand il faut supprimer la donnée ^^

(au cas ou tu aurais des problèmes de vue)

A tester

BONJOUR, (Excuse moi de ne pas l'avoir dit avant)

Dans ton fichier on supprime bien la ligne mais est ce que c'est possible de supprimer seulement une partie de la ligne dans la RS11bis (Ligne allant de A à X) ??

Merci pour ton aide

Bonjour

Bouillou a écrit :

supprimer seulement une partie de la ligne dans la RS11bis (Ligne allant de A à X) ??

Cette instruction

.Range("A" & LigneEnCours).Resize(1, 24).Delete shift:=xlShiftUp

supprime de A à .......(roulement de tambour) .....X

C'est ce que tu veux, ou ai je mal compris ?

Bonjour,

Si c'est bien ce que je veux mais quand j'appuie sur le bouton supprimer il me supprime les lignes de Z à AK dans la feuille RS11bis...

Bonjour

Non le code ne supprime que de A à X

Mais ce sont tes formules (que je viens de découvrir) qui n'acceptent pas la suppression de cette partie de ligne

Une modification à tester

BONSOIR,

Merci cela marche très bien.

Bonjour,

J'ai encore une petite question sur le même fichier. Je voudrais que lorsqu'on rajoute une donnée il recommence à compter à partir de la dernière donnée sortie. Je pense que c'est cette ligne de code qui ne va pas :

        .Cells(Ligne, 1) = Ligne - 3 

Je n'arrive pas à lui dire de commencer à compter par rapport à la ligne précédente.

Merci d'avance pour votre aide,

Bonjour

Donnes un exemple précis

Car pour moi cela fonctionne correctement, la ligne ajoutée aura comme numéro la ligne excel -3, c'est à dire comme les autres enregistrements

Bonjour,

En fait lorsque je supprime par exemple la donnée "RS11_CP_14" il remonte toutes les lignes en dessous, jusque là nickel, mais par contre il modifie le nombre des codes du dessous et ça je ne veux pas qu'il les modifie.

Et lorsque par exemple je supprime "RS11_CP_14" je voudrais qu'au prochain ajout le nombre reparte par rapport au dernier nombre ajouté.

Pour cela j'ai mis en commentaire ce bout de code qui refait la numérotation :

NbLg = .Range("A" & Rows.Count).End(xlUp).Row
      If NbLg > 3 Then
       With .Range("A4:A" & NbLg)
        .Formula = "=ROW()-3"
         .Value = .Value

Et le problème est que le nombre de la dernière donnée ajoutée est le même que la ligne du dessus et je pense que cela vient de la ligne de code là mais je ne sais pas par quoi remplacer cette ligne :

        .Cells(Ligne, 1) = Ligne - 3

Merci pour votre aide,

Bonjour Banzai,

J'ai pu voir en me baladant sur le forum que tu avais fait pas mal de modif de fichier pour gérer les modifications de tableau via un userform. Est ce qu'il serait possible de faire un bout de programme qui permette de modifier la table de donnée déjà entrée ?

Sélection de la donnée en question via un combobox et à la sélection de la donnée affichage des données lui correspondant (Option button pour CP, CS...; Checkbox pour Lundi, Mardi...).

J'ai réussi à faire un userform et j'ai cherché toute la matinée mais j'arrive pas à avancer

Merci pour le temps que tu consacres à mon fichier c'est vraiment sympa !

Bonsoir

Pour ta question de numérotation

Modifies la procédure Private Sub CommandButton49_Click()

        End If
        'MAJ de la ligne d'enregistrement
       .Cells(Ligne, 1) = Application.Max(.Columns("A")) + 1
        '.Cells(Ligne, 1) = Ligne - 3          ' Ligne à virer
        .Cells(Ligne, 2) = Now

Bouillou a écrit :

faire un bout de programme qui permette de modifier la table de donnée déjà entrée ?

Le code est déjà fait

Regardes la procédure Private Sub ComboBox1_Change()

Avec tu récupères une valeur dans la variable LigneEnCours et avec celle-ci tu peux l'utiliser pour faire les modifications (voir pour l'exemple la procédure Private Sub CommandButton68_Click() )

Si ce n'est pas ce que tu voulais, c'est que j'ai mal compris ta question

Rechercher des sujets similaires à "modification contenu ligne vba"