XL 2016 Remplacer des valeurs dans toutes une feuilles VBA

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 !

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
 
Bonsoir Esaurelien, bonsoir le forum,

Ça serait tellement plus simple si tu daignais mettre en pièce jointe le fichier qui va bien...
Par exemple
Partout ou il ya par exemple TAX0001 je voudrais remplacer la valeur sui est jusqte à cote c'est a dire TVA par une autre valeur par exemple 1
 

Pièces jointes

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:
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
 
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
 
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
 
- 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

Retour