-1
votes

Comment trouver la valeur E1 dans cloumen2, puis remplacer par la valeur de colonne1 à l'aide de macro?

Je veux trouver la valeur disponible dans e1 cellule dans colonne2 puis remplacer par colonne1 valeur. Par ex.

La valeur B2 doit être remplacée d'ABC-1 à A-1. La valeur B3 doit être remplacée à partir d'ABC-1 à B-1

et ainsi de suite.

Je suis nouveau dans les macros.

J'essayais de mettre le code d'Internet xxx


4 commentaires

Pouvez-vous élaborer un peu plus et partager peu de captures d'écran de la façon dont il est souhaitable?


Vous utilisez i ( RPLC = cellules (I, 8) .Value ) Avant de démarrer la boucle avec i .


Colonne1 Columin2 ABC A ABC-1 B ABC-2 C ABC-3 D ABC-4 E ABC-5 F ABC-6 G ABC-7 H ABC-8 I ABC-9 J ABC-10


Je ne pouvais pas être capable de trouver comment coller la capture d'écran. La colonne1 contient des valeurs comme A, B, C, D, E et Colonne 2 comme ABC-1, ABC-2, ABC-3, etc. Il y a de la valeur dans la colonne E1 comme abc


3 Réponses :


0
votes

Voir les commentaires dans le code pour plus de détails, mais laissez-moi savoir si cela fait ce que vous demandez:

Sub FindReplaceAll()

Dim ws As Worksheet: Set ws = ActiveWorkbook.Sheets("sheet name") '<-- set your sheet name
Dim lRow As Long: lRow = ws.Cells(Rows.Count, "A").End(xlUp).Row 'get last row in column A
Dim arrData As Variant: arrData = ws.Range("A1:E" & lRow) 'declare and allocate data to an array

Dim R As Long, C As Long

For R = LBound(arrData) To UBound(arrData)
    If arrData(R, 5) = arrData(R, 2) Then 'if E matches the value in B
    'If arrData(1, 5) = arrData(R, 2) Then 'Alternative if E1 is a fixed value, and not for every row
        ws.Cells(R, 2) = arrData(R, 1) 'allocate the A value to B
    End If
Next R

End Sub


0 commentaires

0
votes

Essayez:

Option Explicit

Sub FindReplaceAll()

    Dim SearchString As String
    Dim LastRow As Long, i As Long

    With ThisWorkbook.Worksheets("Sheet1")
        'Find the last row of column A
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        'Set the SearchString equal to the value of cell E1
        SearchString = .Range("E1").Value

        'Loop from second row to lastrow
        For i = 2 To LastRow
            'If the value of cell B & i equal to SearchString
            If (.Range("B" & i).Value <> "") And (.Range("B" & i).Value = SearchString) Then
                'Cell B & i equal to A & i
                .Range("B" & i).Value = .Range("A" & i).Value
            End If

        Next i

    End With

End Sub


0 commentaires

1
votes

édité votre code un peu adapté aux besoins que vous avez décrits (si bien compris)

  • Vous recherchez toujours la valeur dans la cellule absolue E1
  • Vous remplacez la rechercheValue dans la colonne B avec la valeur totale de la colonne A

    mon exemple de données basé sur vos commentaires:

    Entrez la description de l'image ici xxx

    après Exécution de macro:

     Entrez la description de l'image ici

    et au cas où vous pouvez simplement le faire via la formule et éviter la VBA (surtout si vous êtes nouveau à ce sujet. ), par exemple dans c2 mettre: xxx

    et glisser vers le bas ...

     Entrez la description de l'image ici


1 commentaires

@avi, s'il a répondu à votre question, envisager de marquer la question comme répondant . Merci