demande explication sur une macro proposée par le forum

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 !

BRUNO62

XLDnaute Occasionnel
Bonsoir,

Je souhaite avoir une une explication sur cette macro proposée par STAPLE 1600 le 12/09/2010.

Sélectionnes la cellule E1 puis lances la macro ci-dessous

Code:
Sub a()
Dim r As Range, c As Range
Set r = ActiveCell.CurrentRegion.Columns(2)
With r
.SpecialCells(4).FormulaR1C1 = "=RC[-1]"
.Value = .Value
End With
End Sub

Par avance merci
A+
 
Re : demande explication sur une macro proposée par le forum

Bonsoir


Que veux-tu savoir ?


Pour infos: la macro fut postée Lien supprimé

Voici une version qui devrait mieux te faire comprendre ce que fais la macro
Copie la macro ci-dessous dans un classeur vierge
puis lances la macro.
Code:
Sub a_plus()
Dim tt, ttt, b&, P_Ause
Dim r As Range
[COLOR=Green]'code de création des données de test[/COLOR]
tt = Split("ref/a/J/F/12/HG/45/LM/71", "/")
b = UBound(tt)
[E1].Resize(b + 1) = Application.Transpose(tt)
[F1].Resize(b + 1) = Application.Transpose(tt)
Range("G4,F3,F5,F7,F9").ClearContents
    With Columns("E:F")
        .HorizontalAlignment = xlCenter: .ColumnWidth = 4
        With .Font
        .Size = 12: .Bold = True
        End With
    End With
[COLOR=Green]'fin de création des données de test[/COLOR]
P_Ause = MsgBox("Remplir le vide?", vbYesNo, "Test")
If P_Ause = vbYes Then
Set r = [E1].CurrentRegion.Columns(2)
With r
.SpecialCells(4).FormulaR1C1 = "=RC[-1]"
.Value = .Value
End With
Else
End
End If
End Sub
 
Dernière édition:
Re : demande explication sur une macro proposée par le forum

Re

Pour être complet

Voici la version orthodoxe
Code:
Sub a()
[COLOR=Green]'Déclarations[/COLOR]
Dim r As Range, c As Range
[COLOR=Green]'ici on définit la plage de cellules , cad la colonne F[/COLOR]
Set r =Range("E1").CurrentRegion.Columns(2)
[COLOR=Green]'ici on insère une formule dans les cellules vides[/COLOR]
[COLOR=Green]'la formule pour F1 par exemple : =E1  (qui s'écrit : "=RC[-1]")
' R pour Row C pour Columns, cad Colonne - 1[/COLOR]
With r 
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC[-1]"
[COLOR=Green]'ici on transforme les formules en valeurs[/COLOR]
    .Value = .Value
End With
End Sub
La version postée le 12/09/10 est juste une version utilisant des astuces d'écritures
 
Re : demande explication sur une macro proposée par le forum

Bonsoir Staple1600,

Je te remercie une fois de plus pour les explications données.
J'essaye de l'adapter à mon fichier existant et je n'arrive pas au résultat voulu.
C'est pourquoi, je me permets de remettre une partie du fichier à travailler.
Par avance merci
A+
 

Pièces jointes

Re : demande explication sur une macro proposée par le forum

Bonsoir


Voila ainsi modifié cela fonctionne


Code:
Sub a()
'Déclarations
Dim r As Range, c As Range
Set r = Range([L6], [L65536].End(xlUp)).Offset(, 1)
With r
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC[-1]"
'ici on transforme les formules en valeurs
    .Value = .Value
End With
End Sub
PS: il faut au préalable effacer tout ce qu'il y en dessous de la ligne 10 pour que la
macro fonctionne avec ton fichier joint.

EDITION: bonsoir Paritec
 
Dernière édition:
- 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
Retour