Incrémenter code VBA pour copie rapide

Bonjour,

je fais appel à vos connaissances pour résoudre un "problème" qui n'en ai pas vraiment un.

Je suis déjà bien avancé sur la programmation d'un Excel VBA que je dois faire, cependant une étape me prend beaucoup de temps à coder et je suis persuadé qu'il est possible d'être beaucoup plus efficace et rapide.

Je dois copier plus d'une 100aine de fois une macro quasiment identique dans le but d'assigner chacune d'elles à un bouton différent.

je cherche juste à changer le chiffre/nombre de ce code sans pour autant réécrire à chaque fois. Faire une sorte d'incrément ciblé et automatique.

Ci joint une image avec l'exemple.

capture

Merci beaucoup

Bonjour et

Il y a 2 simplifications possibles :

  • exploiter le texte du bouton dans la macro qui deviendra unique
  • écrire une macro qui en effet sera générique

Merci beaucoup de la réponse, je ne peux malheureusement pas joindre mon fichier qui contient des informations confidentielles et qui ne fonctionne que sur le serveur de mon entreprise.

Pour ce qui est du nom du bouton, je n'ai pas vraiment de problème. C'est surtout sur les (B7, D7, E7....).

Je voudrais qu'a cette en ligne en particulier du code un incrément de +1 soit appliqué (B8, D8, E8...) pour m'éviter de taper du code répétitivement.

Merci

C'est dommage que tu ne veuilles pas faire un fichier test.

On n'a même pas en texte le code initial !

Je vais donc te le faire moi même.

capture d ecran 658

Merci beaucoup de la réponse.

J'ai fait une pause et j'ai réussi à trouver une méthode plus adaptée à mon cahier des charges. J'ai résolu donc mon 1er problème mais viens un 2nd problème.

Mon bouton et la macro fonctionne pour une seule ligne sélectionnée mais dés que j'en sélectionne plusieurs, cela ne fonctionne que sur la 1ère ligne. Les autres ne s'effacent pas. Ci-joint un classeur avec le code.

Merci

10supp-lignes.xlsm (17.55 Ko)
Sub btn_SuppLigneSelect()
Dim msg As String, title As String, Response As String
Dim style  As Integer
Application.ScreenUpdating = False
msg = "Voulez-vous supprimer cette(ces) ligne(s) ?"
style = vbYesNo + vbCritical + vbDefaultButton2
title = "Suppression ligne"
Response = MsgBox(msg, style, title)
If Response = vbYes Then
 For Each cel In Selection
  cel.EntireRow.Cells(1, 2).ClearContents
  cel.EntireRow.Cells(1, 4).ClearContents
  cel.EntireRow.Cells(1, 5).ClearContents
  cel.EntireRow.Cells(1, 6).ClearContents
  cel.EntireRow.Cells(1, 7).ClearContents
  cel.EntireRow.Cells(1, 8).ClearContents
  cel.EntireRow.Cells(1, 9).ClearContents
  cel.EntireRow.Cells(1, 10).ClearContents
  cel.EntireRow.Cells(1, 11).ClearContents
 Next
End If
End Sub
9supp-lignes.xlsm (17.01 Ko)

GÉNIAL ! Problème résolu ! Merci beaucoup

Une simplification possible (lisibilité)

Sub btn_SuppLigneSelect()
Dim msg As String, title As String, Response As String
Dim style  As Integer
Application.ScreenUpdating = False
msg = "Voulez-vous supprimer cette(ces) ligne(s) ?"
style = vbYesNo + vbCritical + vbDefaultButton2
title = "Suppression ligne"
Response = MsgBox(msg, style, title)
If Response = vbYes Then
 For Each cel In Selection
  With cel.EntireRow
   .Cells(1, 2).ClearContents
   .Cells(1, 4).ClearContents
   .Cells(1, 5).ClearContents
   .Cells(1, 6).ClearContents
   .Cells(1, 7).ClearContents
   .Cells(1, 8).ClearContents
   .Cells(1, 9).ClearContents
   .Cells(1, 10).ClearContents
   .Cells(1, 11).ClearContents
  End With
 Next
End If
End Sub
Rechercher des sujets similaires à "incrementer code vba copie rapide"