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

macro remplacer dans selection X par formule

  • Initiateur de la discussion Initiateur de la discussion flo2002
  • Date de début Date de début

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 !

flo2002

XLDnaute Impliqué
bonjour,
un petit probleme ce matin:
je cherche une macro qui :

quand je selectionne une zone,
la macro cherche les "XXXX"

et les remplaces par une formule du type "=feuil1!$B$2 & target.offset(0,-1) & target.offset (0,-2).

Merci pour votre aide, je m'y colle de mon coté mais ca coince...
 
Re : macro remplacer dans selection X par formule

bonjour flo

comme d'hab, pas sur d'avoir compris ta question 🙄

c'est une concatenation que tu veux faire ?

Code:
Dim c As Range

For Each c In Selection
    If c = "XXXX" Then
        c.FormulaLocal = "=feuil1!$B$2 & " & c.Offset(0, -1) & "&" & c.Offset(0, -2)
    End If
Next c

salut
 
Re : macro remplacer dans selection X par formule

que pensez vous de

Sub faitlemenage()

Dim X As String
X = "XXXX"

For Each X In Selection
If X = "XXXX" Then Replace "=feuil1!$B$2" & Target.Offset(0, -1) & Target.Offset(0, -2)


Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

End Sub
 
Re : macro remplacer dans selection X par formule

Voila j'ai don deux macro et aucune qui ne fonctionne, sur la tienne Hervé j'ai une erreur 1004 sur c.FormulaLocal = "=feuil1!$B$2" & c.Offset(0, -2) & c.Offset(0, -1)


Sub faitlemenage()

Dim X As Variant
X = "XXXX"

For Each X In Selection
If X = "XXXX" Then Replace "XXXX", "=feuil1!$B$2" & Target.Offset(0, -1) & Target.Offset(0, -2)
End If
Next X

Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

End Sub

Dim c As Range
Sub faitlemenage2()

Dim c As Range
For Each c In Selection
If c = "XXXX" Then
c.FormulaLocal = "=feuil1!$B$2" & c.Offset(0, -2) & c.Offset(0, -1)
End If
Next c
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub

merci
 
Re : macro remplacer dans selection X par formule

Re voila ce que je voulais,
Sub faitlemenage3()
Dim X As Range

For Each X In Selection
If X = "XXXX" Then
X = Sheets("Garde").Range("E5").Value & X.Offset(0, -3) & X.Offset(0, -1)

End If
Next X

Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

End Sub

désolé Hervé pour mon explication encore une fois vaseuse...
merci à tous
 
Re : macro remplacer dans selection X par formule

re


c'est parti pour une explication de code :

Sub faitlemenage()

Dim X As String
X = "XXXX"

For Each X In Selection'pas bon, X ayant eté déclaré en string, ton code va buggué car il attend un range
If X = "XXXX" Then Replace "=feuil1!$B$2" & Target.Offset(0, -1) & Target.Offset(0, -2)
'pas bon, replace à une syntaxe particuliere,
'lacellule=replace(lacellule, les valeurs à remplacer,les valeurs de remplacement)
'target n'est utilisé que dans les évenementielles pas dans les sub



Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'manque un next 😕
End Sub

code corrigé :

PHP:
Sub faitlemenage()
Dim c As Range
Dim X As String
X = "XXXX"

For Each c In Selection
If c = X Then c = Replace(c, X, "=feuil1!$B$2" & "&" & c.Offset(0, -1) & "&" & c.Offset(0, -2))

Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Next c
End Sub

flo, il faut vraiment que tu prennes l'habitude de tester tes codes, c'est la base de l'apprentissage, tout ce que je viens de te dire Le débuggeur te l'aurait dit aussi.


salut
 
Re : macro remplacer dans selection X par formule

Bonjour

Flo pour te sortir de ton pétrin, bourbier, enlisement, ... .😕

Tu veux avoir quoi dans la cellule, le résultat de la formule issue de la concaténation ou la formule concaténée.

Il faut nous dire ce que tu as dans la cellule feuil1!$B$2, et ce que tu as dans les deux cellules adjacentes à X

PS : Flo ne balance pas des codes que tu n'as pas testé, en plus en demandant à Hervé ce qu'il en pense.😱

@+Jean-Marie
 
Dernière édition:
Re : macro remplacer dans selection X par formule

Merci messieux pour cette explication,
je vais faire attention à tester mes codes apresent, je prends note de vos remarques.
Cependant, mon dernier code fonctionne.

merci encore
 
- 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

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