formule automatique

Yldie

XLDnaute Junior
Chers Xldnautes,

Pourriez vous m'aider s'il vous plait à créer une macro, mes compétences sont limitées......merci d'avance.

YLDIE

voir PJ
 

Pièces jointes

  • Classeur1.xls
    15 KB · Affichages: 54
  • Classeur1.xls
    15 KB · Affichages: 54
  • Classeur1.xls
    15 KB · Affichages: 58

ROGER2327

XLDnaute Barbatruc
Re : formule automatique

Bonjour Yldie
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_Change(ByVal Target As Range)
Dim oPlg As Range, oCel As Range
   If Not Intersect(Target, Range("I3:J23")) Is Nothing Then
      Set oPlg = Intersect(Target, Range("I3:J23"))
      For Each oCel In oPlg.Cells
         If IsEmpty(Cells(oCel.Row, 9)) Or IsEmpty(Cells(oCel.Row, 10)) Then
            Cells(oCel.Row, 5).ClearContents
         Else
            Cells(oCel.Row, 5).Value = Cells(oCel.Row, 10).Value & "   " & Cells(oCel.Row, 9).Value
         End If
      Next
   End If
End Sub[/B][/COLOR]
ROGER2327
#3852


Vendredi 20 Gidouille 137 (Saint Périnée, zélateur, SQ)
16 Messidor An CCXVIII
2010-W26-7T09:56:35Z
 

JCGL

XLDnaute Barbatruc
Re : formule automatique

Bonjour à tous,

Comme déjà écrit un code n'est pas vraiment nécessaire mais peux-tu essayer dans le module de la Feuil1 :

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("J3:J23")) Is Nothing) Then
Cells(ActiveCell.Row, 5).Formula = "=IF(RC[4]="""","""",CONCATENATE(RC[5],""   "",RC[4]))"
End If
End Sub

A+ à tous
 

Yldie

XLDnaute Junior
Re : formule automatique

Bonjour Ratatouill,

Je souhaiterais que les formules n'existent pas dans les cellules "E:E" mais qu'elles apparaissent sous macro car un utilisateur pourrait effacer (en effet, Je ne verrouillerai pas ces cellules donc n'importe quel utilisateur peut effacer la formule =SI(I3="";"";CONCATENER(J3;" ";I3)) d'où une formule du type
formula="If......etc.....etc.....mais uniquement sous VBA.)

Merci de votre aide

Yldie
 

Ratatouil

XLDnaute Nouveau
Re : formule automatique

Bonjour a tous,
Il existe aussi cette solution :

sub formule()
dim x as integer

for x = 4 to 23
Range("e" & x).FormulaLocal = "=SI(I" & x & "="""";"""";CONCATENER(J" & x & ";"" "";I" & x & "))"
next
end sub

Macro a affécter à un bouton et qui ne servirai que si un utilisateur efface la formule
 

ROGER2327

XLDnaute Barbatruc
Re : formule automatique

Suite...
Un message de Yldie m'informe que son problème n'est pas celui posé plus haut. Il faut ajouter une condition : les cellules de la colonne E à G sont fusionnées.
Dans ce cas, une solution est de remplacer
Code:
[COLOR="DarkSlateGray"][B]            Cells(oCel.Row, 5).ClearContents
[/B][/COLOR]
par
Code:
[COLOR="DarkSlateGray"][B]            Cells(oCel.Row, 5).Value = ""
[/B][/COLOR]
ROGER2327
#3855


Vendredi 20 Gidouille 137 (Saint Périnée, zélateur, SQ)
16 Messidor An CCXVIII
2010-W26-7T21:14:34Z
 

Yldie

XLDnaute Junior
Re : formule automatique

Mille mercis ROGER2327, vous avez exactement pu répondre à ma demande et je vous en félicite, de plus j'apprends beaucoup en essayant de déchiffrer les codes (je perçois la structure logique, maintenant il me faudra certainement encore quelques mois avant de pouvoir moi même en composer sans oublier un quelconque signe, point ou terme approprié....).
Quel Talent en tout cas !!!!!

Merci au forum et à tous ceux qui y contribuent, merci ROGER2327 ;)
 

Statistiques des forums

Discussions
312 231
Messages
2 086 449
Membres
103 213
dernier inscrit
Poupoule