Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Modification d'une ligne dans mon code

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

INFINITY100

XLDnaute Occasionnel
Bonjour à vous tous

Voila je viens vers vous afin de trouver la solution à mon petit problème, car là j'ai ci dessous une macro qui répond totalement à mes besoins sauf un à point qui me cause problème.

En effet je cherche à modifier ce code afin que cette macro fonctionne à chaque fois que le nom de la feuille change c'est à dire comme ceci :
Facture - Facture1 - Facture2 - Facture3 - Facture non payée - Facture en attente ...... etc

Je joins mon code ci-dessous et étant débutant en VBA je ne sais quelle ligne modifier

VB:
Dim sh As Worksheet
Dim sFormula As String
Dim sFormula2 As String
Dim DernierID As Integer
Dim lignevide As Integer

Sub Copier_Coller(CopyRange As String)
    With Worksheets("Facture").Range("A1")
        If .Value Like "*CFA*" Then
            Set sh = Sheets("CFA")
 
        ElseIf .Value Like "*UREA*" Then
            Set sh = Sheets("UREA")
         Else
            Set sh = Sheets("UFI")
         End If
    End With
    DernierID = WorksheetFunction.Max(sh.Range("A:A"))
    lignevide = sh.Range("A" & Rows.Count).End(xlUp).Row + 1
 If lignevide < 2 Then lignevide = 2
    sh.Cells(lignevide, 1) = DernierID + 1
    sh.Range("B" & lignevide).Resize(, Range(CopyRange).Count) = Application.Transpose(Range(CopyRange))
    sFormula = "=SIERREUR(SOMME($J$" & lignevide & ":$K$" & lignevide & ");""Attention ! il y a une erreur !"")"
    sFormula2 = "=SIERREUR(SOMME($m$" & lignevide & "*$n$" & lignevide & ");""Attention ! il y a une erreur !"")"
    sh.Cells(lignevide, "L").FormulaLocal = sFormula
    sh.Cells(lignevide, "o").FormulaLocal = sFormula2
End Sub

Et pour l'appel :

VB:
Sub Validation()
    Copier_Coller "Facture!B2:B14"
End Sub
 
Bonsoir Infinity,
Pourquoi ne pas passer deux paramètres avec NomFeuille et Plage :
VB:
Sub Validation()
    Copier_Coller "Facture", "B2: B14"
End Sub
La macro commencerait alors par :
Code:
Sub Copier_Coller(Feuille As String, CopyRange As String)
et vous remplacez :
Code:
With Worksheets("Facture").Range("A1")
par
With Sheets(Feuille).Range("A1")
ou encore
Code:
Range(CopyRange)
par
Sheets(Feuille).Range(CopyRange)
A essayer. 🙂
 
Merci infiniment Sylvanu

Après test ça marche à merveille

Merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
597
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…