VBA-Remplacer

Résolu/Fermé
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020 - Modifié le 1 déc. 2018 à 21:07
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020 - 1 déc. 2018 à 21:14
Bonjour,
Apres avoir créer une macro me permettant de Copier des lignes d'un tableau et les ajouter à la suite je voudrai faire en sorte que certaines données se trouvant dans la partie a copier soient changé uniquement dans la partie qui sera collée en dessous de mon tableau. C'est a dire remplacer tous les "FXCORP" par des "FXMASS" mais seulement dans la partie qui sera ajouté a la suite de mon tableau. Voici ce que je suis parvenu a faire mais quand il sagit de remplacer c'est tout le tableau qui change.
je vous remercie d'avance pour votre aide.
Sub test()
Dim i As Integer
Dim arret As Boolean

i = 2

    Do
        If (ActiveSheet.Range("A" & i)) = "" Then
            arret = True
        Else
            i = i + 1
        End If
    Loop While arret = False
    
    Range("A" & i - 10 & ":DL" & i - 1).Copy
    Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Dim Paste As Worksheet
For Each Paste In ThisWorkbook.Worksheets
    Paste.Cells.Replace What:="FXCORP-DA", Replacement:="FXMASS-DA"
Next Paste
End Sub 


Configuration: Windows / Chrome 70.0.3538.110

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
1 déc. 2018 à 18:32
Bonjour,

Essaie :

Sub test()
Dim i As Integer
Dim arret As Boolean

i = 2

Do
If (ActiveSheet.Range("A" & i)) = "" Then
arret = True
Else
i = i + 1
End If
Loop While arret = False

Range("A" & i - 10 & ":DL" & i - 1).Copy
Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.Replace "FXCORP-DA", "FXMASS-DA"
End Sub


Cordialement.

Daniel
0
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020
1 déc. 2018 à 18:54
Merci beaucoup ça marche a merveille
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 1 déc. 2018 à 19:33
Bonjour,

Il serait plus propre d'écrire :
Sub test()
Dim r As Range
  Set r = ActiveSheet.Columns(1).Find("*", , , , , xlPrevious).Offset(-9).Resize(10, 116)
  r.Copy r.Offset(10)
  r.Offset(10).Replace "FXCORP-DA", "FXMASS-DA"
End Sub

Edit : Ou si A1 est vide
Sub test()
Dim r As Range
  With ActiveSheet.Columns(1)
    Set r = .Find("", .Cells(2), , , , xlNext).Offset(-10).Resize(10, 116)
  End With
  r.Copy r.Offset(10)
  r.Offset(10).Replace "FXCORP-DA", "FXMASS-DA"
End Sub
0
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
1 déc. 2018 à 20:02
d'accord merci beaucoup pour vos reponses
0
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020
1 déc. 2018 à 20:22
Une derniere chose je voudrais aussi que le resultat de la formule qui ce trouve dans la partie du tableau a copier soit figée comment faire?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 1 déc. 2018 à 20:27
Donc, dans ce cas la formule ne sera pas conservée :
Sub test()
Dim r As Range
  With ActiveSheet.Columns(1)
    Set r = .Find("", .Cells(2), , , , xlNext).Offset(-10).Resize(10, 116)
  End With
  r.Copy r.Offset(10)
  r.Offset(10).Value = r.Value
  r.Offset(10).Replace "FXCORP-DA", "FXMASS-DA"
End Sub
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
1 déc. 2018 à 20:28
Qu'est-ce que tu entends par "figé" ?

Daniel
0
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020
1 déc. 2018 à 20:30
Annuler la formule donc juste avoir le resultat quand je clique dans la cellule
0
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
1 déc. 2018 à 20:36
Oui mais je veut que la formule soit annulée seulement dans la partie du tableau que je vais copier pas au niveau de la partie qui sara collée a la suite
0
Monsieur_Malik Messages postés 17 Date d'inscription samedi 1 décembre 2018 Statut Membre Dernière intervention 1 mars 2020
1 déc. 2018 à 20:42
Les formules se trouvent en colonne G
0