Macro sous VBA

Bonjour à tous et à toutes,

J'aurai besoin d'un petit coup de mains

J'ai un souci pour changer une valeur dans une extraction. Il m'arrive parfois d'obtenir une valeur avec une lettre (1c ou 2c ou etc...)

Lorsque c'est le cas ET que l'info en colonne f est égale à "PAL" j'aimerai simplement la remplacer par 0,5

Quelques infos complémentaires :

  • Le nombre de ligne de l'extraction peut varier (possibilité d'avoir 15-20 tableau)
  • Le tableau aura toujours la même forme et le premier tableau débutera toujours en C14

En espérant vous avoir donné toutes les informations

Je joins un fichier exemple où j'ai déjà essayé de créer une macro en vain.

12fichier-test2.xlsm (36.05 Ko)

En vous remerciant bonne journée à vous !

Bonjour Log-alex, le forum,

Un essai pour modifier les valeurs...

Sub Modif()

 Dim i As Integer, dl As Integer, c As Range, plage As Range

  With Sheets("Extraction de base")                 'on agit sur la feuille "Extraction de base"
   dl = .Range("E" & Rows.Count).End(xlUp).Row      'définit la dernière ligne utilisée de la colonne E

   Set plage = .Range("G14:P" & dl)                 'définit la plage dans laquelle on doit modifier les valeurs

    For i = 14 To dl                                'boucle de la ligne 14 à la dernière ligne
     If .Range("F" & i) Like "PAL" Then             'si la colonne F contient PAL
      For Each c In plage                           'boucle sur chaque cellule de la plage
       If c.Value Like "*c" Then c.Value = 0.5      'si la cellule contient une valeur(*) et c
      Next c
     End If
    Next i

  End With

End Sub

Cordialement,

Bonjour Xorsankukai,

Je te remercie non seulement pour ton code qui marche, mais aussi pour avoir pris le temps de m'éclairer à chaque étape du code, j'avoue que je m'étais emmêlé les pinceaux !

Pardon j'ai été trop vite pour clôturer le sujet il y a une exception,

Lorsque j'ai 1c dans PAL / COLIS, je veux qu'il reste, or la macro me met quand même 0,5 aurait tu une idée de la modification à apporter ?

Encore merci

Log'

Après plusieurs test effectués de mon côté, le code proposé ne prend pas en compte le critère "PAL" car si je met par exemple 1c dans n'importe quelle cellule elle est automatiquement transformée en 0,5.

Si vous avez quelque chose pour l'appliquer uniquement quand il y a "PAL" dans la colonne F je suis preneur.

Je poursuis les recherches de mon côté.

Merci bonne journée.

Log'

Salut Alex,

Salut l'équipe,

Application.ScreenUpdating = False
'
For x = 1 To Range("F" & Rows.Count).End(xlUp).Row
    If Cells(x, 6) = "PAL" Then
        For y = 7 To 16
            If InStr(Cells(x, y), "c") > 0 Then Cells(x, y) = 0.5
        Next
    End If
Next
'
Application.ScreenUpdating = True

A+

Merci beaucoup curulius, merci également à xorsankukai sa fonctionne parfaitement !

Bonne journée à vous !

Rechercher des sujets similaires à "macro vba"