Modification macro

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
 

Staple1600

XLDnaute Barbatruc
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 ...:rolleyes:
 

Staple1600

XLDnaute Barbatruc
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
 

lostheroe

XLDnaute Occasionnel
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
 

Paf

XLDnaute Barbatruc
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+
 

Discussions similaires

Statistiques des forums

Discussions
312 358
Messages
2 087 585
Membres
103 601
dernier inscrit
ASLEROY