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

Remplacer des "P" par des "R"

elect31

XLDnaute Nouveau
Bonsoir
Comme le dit le titre, j'essaye simplement de remplacer les "P" d'une colonne par des "R".
Hé bèh! ça bloque!!!
J'ai une incompatibilité de type quand j'arrive à la ligne "If cell.Value = "P" Then"
J'utilise la fonction Find_R pour retrouver la bonne colonne dans la ligne des titres.(et elle fonctionne bien...)
A B C D E
1 Date N° Opération R <<<< Les titres
2 04/01/59 1 achat P
3
4 12/01/63 2 matos P

Voilà le code:

Dim maFeuille As String
Sub rapprochement()
Dim cell As Range, macolonne As String
maFeuille = ActiveSheet.Name
macolonne = Left$(Range(Find_R).Address(0, 0), (Range(Find_R).Column < 27) + 2) 'Laurent Longres
For Each cell In Worksheets(maFeuille).Columns(macolonne & ":" & macolonne)
If cell.Value = "P" Then
cell.Value = "R"
End If
Next cell
End Sub
Function Find_R() As String
'Permet de retrouver la cellule qui contient "R" dans la ligne des titres
Dim cell As Range, titres As Range
Set titres = Worksheets(maFeuille).Range(Range("A1"), Range("A1").End(xlToRight))

For Each cell In titres
If cell = "R" Then
Find_R = cell.Address
End If
Next cell
End Function

J'espère avoir été clair
Merci
elect
 
Dernière édition:

elect31

XLDnaute Nouveau
Re : Remplacer des "P" par des "R"

Merci Brigitte
J'ai résolu mon problème ( grâce au MPFE)
Je mets le code ici, si ça peut servir à quelqu'un

Option Private Module
Option Explicit
Public adresseR As String
Public macolonneR As Byte
Dim maFeuille As String

Sub rapprochement()
Dim derniere As Byte, i As Byte
maFeuille = ActiveSheet.Name
adresseR = Find_R

macolonneR = Range(adresseR).Column

With Worksheets(maFeuille)
derniere = .UsedRange.Rows.Count
For i = 2 To derniere
If .Cells(i, macolonneR).Formula = "P" Then
.Cells(i, macolonneR).Formula = "R"
End If
Next
End With
End Sub

Function Find_R() As String 'Trouver l'adresse
'de l'intitulé "R" dans la ligne (1) des titres de colonnes
Dim cell As Range, titres As Range
Set titres = ActiveSheet.Range(Range("A1"), Range("A1").End(xlToRight))

For Each cell In titres
If cell = "R" Then
Find_R = cell.Address
End If
Next cell
End Function
 

Discussions similaires

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