XL 2016 Remplacer des valeurs dans toutes une feuilles VBA

aurelio.ewane

XLDnaute Occasionnel
Bonjour les excellistes
jai un soucis avec mon code suivant
Dim Sh1 as worksheet
Set Sh1=thisworkbook.sheets("Base")

Sh1.Range(Sh1.Cells(50, 7), Sh1.Cells(15000, 1017)).Replace What:=me.ComboBox1.Text, Replacement:=me.ComboBox2Text, LookAt:=xlWhole _
' , SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
' ReplaceFormat:=False

Set Sh1=nothing

ce code fonctionne bien mon probleme est donc le suivant je voudrais que partout ou il trouve la valeur de Combobox1 qu'il mettre la
valeur de combobox2 dans lacolonne directement a cote et meme ligne

donc jaurais besoin de recuperer la colonne et la ligne de chacune de mes occurences et ensuite de remplacer la valeur qui se trouve a la meme ligne
et la colonne+1 par la aveleur de combobox2

jespere avoir ete clair

votre aide serait le bienvenue Sil vous plait
 

job75

XLDnaute Barbatruc
Bonsoir esaurelien,

Exécutez cette macro :
VB:
Sub Test()
With ThisWorkbook.Sheets("Base").[G50:AMC15000]
    Application.ScreenUpdating = False
    On Error Resume Next'si aucune SpecialCell
    .Replace ComboBox1, "#N/A", xlWhole
    .SpecialCells(xlCellTypeConstants, 16).Offset(, 1) = ComboBox2
    .Replace "#N/A", ComboBox1
End With
End Sub
Bonne nuit.
 
Dernière édition:

job75

XLDnaute Barbatruc
Salut Robert, pas rafraîchi.

Avec la macro précédente la casse est ignorée, avec celle-ci elle est respectée :
VB:
Sub Test2()
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With ThisWorkbook.Sheets("Base").[G50:AMC15000]
    .Replace ComboBox1, "#N/A", xlWhole, MatchCase:=True
    .SpecialCells(xlCellTypeConstants, 16).Offset(, 1) = ComboBox2
    .Replace "#N/A", ComboBox1
End With
End Sub
 

aurelio.ewane

XLDnaute Occasionnel
Salut Robert, pas rafraîchi.

Avec la macro précédente la casse est ignorée, avec celle-ci elle est respectée :
VB:
Sub Test2()
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With ThisWorkbook.Sheets("Base").[G50:AMC15000]
    .Replace ComboBox1, "#N/A", xlWhole, MatchCase:=True
    .SpecialCells(xlCellTypeConstants, 16).Offset(, 1) = ComboBox2
    .Replace "#N/A", ComboBox1
End With
End Sub
A quoi sert le "#N/A" ? sil te plait
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Un pétard ! Ça fait rien je poste quand même :

VB:
Sub Robert()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Variant 'déclare la variable J (incrément)

Set O = Worksheets("Base") 'définit l'onglet O
TV = O.UsedRange 'définit la tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV
    For J = 1 To uboound(TV, 2) 'boucle 2 : sur toutes les colonnes J du tableau des valeurs TV
        'si la donnée ligne I colonne J de TV est égale `s la valeur de la ComboBox1
        'renvoie la valeur de la ComboBox2 dans la cellue ligne I colonne J + 1
        If TV(I, J) = Me.combobox1.Value Then O.Cells(I, J + 1).Value = Me.comboBox2.Value
    Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
End Sub
 

Discussions similaires

Réponses
1
Affichages
209

Membres actuellement en ligne

Statistiques des forums

Discussions
314 719
Messages
2 112 183
Membres
111 456
dernier inscrit
Bologne5