Incrementation avec un bouton

Bonjour,

J'ai créé un bouton sur ma feuille Excel qui me permet de 'ajouter une nouvelle ligne dans mon tableau avec une forme déjà défini. et grâce a ce bouton j'aimerais incrémenter un numéro dans la colonne L . C'est a dire qu'en L5 j'ai mon numéro 1 et J'aimerai que quand je clique sur mon bouton il y ai en L6 le numéro 2 , quand je reclique sur le bouton en L7 le numéro 3 apparaisse etc.

merci d'avance

Bonsoir,

sur la première ligne où doit apparaître le numéro inscrivez la formule (si c'est en ligne 5) :

=ligne()-4

En somme vous demandez à Excel d'afficher le numéro de ligne où se trouve la cellule (5) - 4 donc 1

en L6 la formule est identique : =ligne()-4, comme la cellule est en ligne 6 : 6-4=2

Petit soucis si vous faites des tris sur votre tableau, les numéros ne suivront pas la ligne à laquelle il appartiennent !!!

Mais ceci n'arriverait pas avec un fichier joint...

@ bientôt

LouReeD

merci mais est ce possible de mettre cette formule dans mon bouton (module vba) car je clique dessus ça m'insert une ligne déjà toute prête et j'aimerai y ajouter dans la colonne "L" ce fameux comptage?

Merci d'avance

Oui c'est possible...

mais comme dit plus haut, un fichier joint serait la bienvenue...

@ bientôt

LouReeD

voici mon tableau avec mon bouton insertion de ligne

il y a dans le module 1 la macro pour le bouton

Bonsoir

voir le fichier joint...

@ bientôt

LouReeD

38test-2-loureed.xlsm (55.60 Ko)

Merci encore pour ta ligne ça marche super!!!!!!

Par contre dans ma macro en feuille 2 ( feuille informatisée) je pouvais créer des lignes avec le bouton le dossier en colonne "L" et un dossier était créer sur mon bureau automatiquement cela marche toujours bien .

Le hic c'est quand tu veux supprimer une ligne pour le numéro de dossier c'est niquel sur le tableau cela s'efface mais pas le numéro de dossier dans le bureau alors qu'avant cela marchait c'est normal?

le titre de la macro pour supprimer le dossier c'est :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

voir mon tableau excel précédent

merci d'avance

Bonsoir,

je dois vous avouer que là je ne suis plus

A aucun moment je n'arrive à créer un dossier sur mon bureau avec votre fichier...

@ bientôt

LouReeD

ok sur votre bureau vous créer un dossier nommé "test"

ensuite vous entrez dans la macro et sur ma feuille 2( feuille informatisé )il y a ça:

Option Explicit

Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long

Private Const MON_CHEMIN As String = "C:\Users\Desktop\test\'a adapter

Private Cible As String, Cel As Range

Private Sub Worksheet_Activate()

' ici il y a une erreur car Target non spécifié

If Not Intersect(Target, Range("L6:L100")) Is Nothing Then Cible = Target.Value: Set Cel = Target

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("L6:L100")) Is Nothing And _

Union(Target, Range("L6:L100")).Cells.Count = Range("L6:L100").Cells.Count Then

If Target.Value <> "" Then

On Error Resume Next

SHCreateDirectoryEx 0, MON_CHEMIN & Target.Value, ByVal 0&

Application.EnableEvents = False

ActiveSheet.Hyperlinks.Add Anchor:=Cel, Address:=MON_CHEMIN & Target.Value

Application.EnableEvents = True

Else

If Cible <> "" Then

If Dir(MON_CHEMIN & Cible, vbDirectory) <> "" Then

Dim FS

Set FS = CreateObject("Scripting.FileSystemObject")

FS.Deletefolder MON_CHEMIN & Cible

End If

End If

End If

End If

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("b6:b100")) Is Nothing Then

ActiveWindow.Zoom = 100

Else

ActiveWindow.Zoom = 60

End If

On Error Resume Next

If Not Intersect(Target, Range("L6:L100")) Is Nothing And _

Union(Target, Range("L6:L100")).Cells.Count = Range("L6:L100").Cells.Count Then Cible = Target.Value: Set Cel = Target

End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Dim resultat As String

resultat = InputBox("Entrez le numéro de ligne à supprimer", "Suppression ligne") 'La variable reçoit la valeur entrée dans l'InputBox

If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat

Cancel = True ' ici on inhibe l'affichage du menu clic droit si on décide d'effacer une ligne

' comme on supprime le ligne nul besoin d'effacer les données avant

' Range("L" & resultat).Select

' Selection.ClearContents

Rows(resultat & ":" & resultat).Select

Selection.Delete Shift:=xlUp

End If

End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Range("E6:H500"), Target) Is Nothing Then

If UCase(Target) = "X" Then Target = "" Else Target = "X"

Cancel = True

End If

End Sub

Et au début vous avez une ligne pour créer le chemin qui est celle ci:

Private Const MON_CHEMIN As String = C:\Users\Desktop\test\'a adapter

La vous changer votre chemin pour accéder au dossier test sur votre bureau

Une fois la manipulation faite quand vous ajouté une ligne dans le tableau automatiquement le numéro 2 apparait et un dossier 2 se créer dans le dossier test

Ensuite quand vous faite clique droit il vous demande quelle ligne vous voulez supprimer. De la vous mettez la ligne correspondante au dossier 2 et normalement la ligne disparait mais aussi le dossier 2 dans le dossier test . Or la le dossier 2 reste et avant l'ajout de l'incrémentation cela marchait .

Il y a t-il un lien? comment le contourner?

Si ce n'est pas possible c'est pas un souci je le ferai manuellement de supprimer le dossier dans le dossier test .

Et je voulais savoir aussi si c'est possible de voir un problème au niveau du clique dans le tableau.

En effet quand le numéro se créer 1,2,3... je suis obliger de double cliquer dans la cellule voulu changer de cellule et revenir dessus pour avoir le pointeur pour cliquer sur le numéro . Il y a t-il une méthode pour que je suis puisse cliquer directe dessus sans a avoir à faire cette manipulation?

Un grand merci d'avance

Bonsoir,

pour la première demande, l'histoire du dossier qui ne s'efface plus c'est tout simplement parce que j'ai mis en commentaire des instructions qui ne fallait pas, ensuite je déplace l'instruction Cancel = True à la suite de la suppression, comme cela "c'est plus propre".

Voici le bout de code à modifier :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim resultat As String
    resultat = InputBox("Entrez le numéro de ligne à supprimer", "Suppression ligne") 'La variable reçoit la valeur entrée dans l'InputBox
    If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat
        Range("L" & resultat).Select
        Selection.ClearContents
        Rows(resultat & ":" & resultat).Select
        Selection.Delete Shift:=xlUp
        Cancel = True ' ici on inhibe l'affichage du menu clic droit si on a décidé d'effacer une ligne
    End If
End Sub

Maintenant, même chez moi, l'ajout suppression des dossiers fonctionne !

Je regarde la deuxième partie de votre post et je reviens de par vers vous...

@ bientôt

LouReeD

Un grand merci à toi LOUREED ça marche

Et pas de problème pour le deuxième point j'attend

Encore merciiii

Bonsoir,

en ayant travailler un peu dessus je crois que c'est un petit problème de code et de syntaxe...

J'ai réussi sur votre fichier à faire que le lien soit accessible du "premier" coup mais du coup la création du dossier ne se fait plus !

Il faut que je gratte un peu...

@ bientôt

LouReeD

Voir le fichier joint...

En fait pas mal de changement :

je suis sortie de la surveillance événementielle de la feuille afin de gérer l'ajout et la suppression du dossier.

C'est plus facile.

Donc votre code est découpé en 4 :

1 : pour ajouter une ligne grâce au bouton.

2 : une procédure de création de dossier suite au 1

3 : pour supprimer une ligne

4 : une procédure de suppression de dossier suite au 3

pour le 4 la variable Cible prend la valeur de la cellule de la colonne L avant la suppression

@ bientôt

LouReeD

Un grand merci à toi c'est super .

Il y a une dernière requête que j'aimerais te demander .Je voudrais avoir un bouton "SUPPRIMER" à coter de "INSERER LIGNE" à la place de faire un clique droit pour supprimer une ligne.

Merci d'avance

Bonjour,

il suffit de copier coller le bouton existant, clic droit sur le bouton créé, attribuer une macro et choisir Sup_ligne.

Dans le code, supprimer sur la feuille informatisé la Sub événementielle "clicdroit"

sur la Sub Sup_ligne, supprimer ce qu'il y a entre parenthèse : Cancel as boolean.

Dans cette même sub supprimer la ligne Cacel = True

Bref ça c'est si vous voulez "apprendre" sinon il y a le fichier joint

@ bientôt

LouReeD

j'avais trouvé un autre truc moi

Dites moi si c'est ok en tout cas ça à l'air de marcher lol

10tableau-6.xlsm (55.43 Ko)

Bonsoir,

je dirais peu importe, l'un, l'autre, s'ils marchent tous les deux

@ bientôt

LouReeD

Encore un grand merci a toi !

A bientot

Merci à vous pour votre merci

@ bientôt

LouReeD

Rechercher des sujets similaires à "incrementation bouton"