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

Modification macro

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 !

lostheroe

XLDnaute Occasionnel
Bonjour,

Je souhaiterais modifié la macro ci-dessous.
Au lieu d'avoir la valeur par défaut d'afficher (Default = "0.75" ' Définition la valeur par défaut), je souhaiterais que la macro aille chercher la valeur situé en face de la ligne Marges total et me l'affiche par défaut.
Le texte marge total est situé dans la colonne 2 et sa valeur est située dans la colonne 5. La valeur de la ligne étant à chercher en trouvant le texte marge total.


Sub ModifMarge()
Dim i As Double
Dim myvalue As String

Dim Message, Title, Default As String


'************** Input Box ***************
' Définit le message.
Message = "Entrer la Valeur de la marge"
Title = "Saisie de la marge" ' Définit le titre.
Default = "0.75" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
myvalue = InputBox(Message, Title, Default)
If myvalue = "" Then Exit Sub

'*********** Changement de la valeur *****************
i = 8 'On commence le traitement a partir de la ligne 8

While Cells(i, 3) <> "GRILLE RECAPITULATIVE"
If UCase(Cells(i, 2)) = UCase("Marges") Then
Cells(i, 5) = myvalue
End If
i = i + 1
Wend

End Sub
 
Re : Modification macro

Bonjour à tous

lostheroe
Le texte marge total est situé dans la colonne 2 et sa valeur est située dans la colonne 5. La valeur de la ligne étant à chercher en trouvant le texte marge total.
Tu veux sans doute parler de la colonne 2 et de la colonne 5 de de feuille "KELFEUILLE" du classeur "OUKILÉLEFICHIERJOINT".xls
?

Ou alors ta PJ absente du fil est un hommage déguisé à ton pseudo ?

Elle aussi, elle est lost ...🙄
 
Re : Modification macro

Bonsoir à tous

Oui, c'est mieux 😉

Code:
Sub ModifMargeBis()
Dim i As Long, myvalue
Dim Message$, Title$, Default


'************** Input Box ***************
' Définit le message.
Message = "Entrer la Valeur de la marge"
Title = "Saisie de la marge" ' Définit le titre.
Default = Range("E28") ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
myvalue = InputBox(Message, Title, Default)
If myvalue = "" Then Exit Sub

'*********** Changement de la valeur *****************
i = 8 'On commence le traitement a partir de la ligne 8

While Cells(i, 3) <> "GRILLE RECAPITULATIVE"
If UCase(Cells(i, 2)) = UCase("Marges") Then
Cells(i, 5) = Round(myvalue, 2)
End If
i = i + 1
Wend
End Sub
 
Re : Modification macro

Bonjour,

Le problème c'est que la case marge totale n'est pas forcément en E28.
Elle est toujours dans la colonne E mais la ligne varie en fonction du nombre de bloc inséré plus haut. Dans ce fichier excel il n'y en a que 3 par exemple. Mais il peut y en avoir bien plus.
Il faudrait rechercher la case Marge totale et ensuite ce décaler de deux colonnes pour trouver la valeur.

Cordialement
 
Re : Modification macro

bonjour à tous

A tester

Code:
Sub ModifMarge()
 Dim i As Double
 Dim myvalue As String

 Dim Message, Title, Default As String

 '*************** Modif  ********************************
 Dim Plage As Range, MargeDefaut As Range

 Set Plage = Worksheets("Récap").Range("B:B")
 Set MargeDefaut = Plage.Find(What:="Marges total", LookAt:=xlWhole)
 '*******************************************************
    
 '************** Input Box ***************
 ' Définit le message.
 Message = "Entrer la Valeur de la marge"
 Title = "Saisie de la marge" ' Définit le titre.

 '************* Modif
 Default = Round(MargeDefaut.Offset(0, 3), 2) ' Définition la valeur par défaut.
 '**************************************************************
 
' Affiche le message, le titre et la valeur par défaut.
 myvalue = InputBox(Message, Title, Default)
 If myvalue = "" Then Exit Sub

 '*********** Changement de la valeur *****************
 i = 8 'On commence le traitement a partir de la ligne 8

 While Cells(i, 3) <> "GRILLE RECAPITULATIVE"
 If UCase(Cells(i, 2)) = UCase("Marges") Then
 Cells(i, 5) = myvalue
 End If
 i = i + 1
 Wend

End Sub

A+
 
- 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
5
Affichages
839
Réponses
15
Affichages
658
Réponses
7
Affichages
445
Réponses
4
Affichages
692
Réponses
3
Affichages
851
Réponses
3
Affichages
410
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…