Création
d'entreprise
Posez votre question Signaler

Condition relative dans une macro excel [Résolu]

Patsy80 - Dernière réponse le 30 avril 2010 à 14:18
Bonjour,
Je suis à la recherche d'une macro qui me permette d'établir une sorte de relativité entre la cellule sélectionnée et la macro à effectuer. Je précise :
Si B3 sélectionné alors effacer (B3:K3)
Si B4 sélectionné alors effacer (B4:K4)
Si B5 sélectionné alors effacer (B5:K5)
Etc. J'ai environ 360 lignes à faire individuellement et je ne me vois pas enregistrer une macro par ligne.
Précision, je suis débutante dans les macro.
Merci à l'avance pour vos solutions !
Patsy80
Lire la suite 

Condition relative dans une macro excel »

4 réponses
Réponse
+1
moins plus
bonjour
Sub effacer_relatif()
lig = ActiveCell.Row
Range(Cells(lig, 2), Cells(lig, 11)).ClearContents
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour Michel et merci bcp pour cette réponse, ça marche super.

Je pensais m'en sortir seule pour la suite mais j'avoue que je sèche encore.

Après avoir effacé ma ligne, je dois y remettre des 3 formules issues d'un autre onglet, une fois de plus par ligne.

Voici ce que donne ma macro pour une ligne donnée :

Range("B3:K3").Select
Selection.ClearContents
Range("H3").Select
ActiveCell.FormulaR1C1 = "=calc!RC[8]"
Range("I3").Select
ActiveCell.FormulaR1C1 = "=calc!RC[8]"
Range("J3").Select
ActiveCell.FormulaR1C1 = "=calc!RC[8]"
Range("J4").Select
End Sub

J'ai remplacé le début par la formule de Michel mais pour la suite, j'ai essayé ça mais ça ne marche pas.

lig = ActiveCell.Row
Range(Cells(lig, 2), Cells(lig, 11)).ClearContents
Range(Cells(lig, 7)).Select
ActiveCell.FormulaR1C1 = "=calc!RC[8]"
Range(Cells(lig, 8)).Select
ActiveCell.FormulaR1C1 = "=calc!RC[8]"
Range(Cells(lig, 9)).Select
ActiveCell.FormulaR1C1 = "=calc!RC[8]"
Range(Cells(lig, 2)).Select
End Sub

Si quelqu'un a une idée? Après, je ne vous embète plus !!

Merci à l'avance

Patsy
michel_m- 30 avril 2010 à 11:15
Bonjour

tu n'as besoin de "range" si tu t'occupes que d'une cellule
Range(Cells(lig, 7)) ---->Cells(lig, 7)
ta macro fonctionnera

par contre pour une zone on utilise range
range(cellule debut, cellule fin)

pour ta macro en VBA (et non à l'enregistreur)

Dim lig As Long
lig = ActiveCell.Row
Range(Cells(lig, 2), Cells(lig, 11)).ClearContents
Range(Cells(lig, 7), Cells(lig, 9)).FormulaR1C1 = "=calc!Rc[8]"
End Sub


si tu veux te lancer progressivement en VBA:
http://www.info-3000.com/
Ajouter un commentaire
Réponse
+0
moins plus
Michel, la page n'est pas assez grande pour la taille de mon MERCI mais si ce n'est peut-être pas grand chose pour toi, c'est 80 % de changement dans mes journées de travail !!!

MERCI et bon week !!

Patsy
Ajouter un commentaire
Ce document intitulé « Condition relative dans une macro excel » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?