Macro ajout de colone, puis remplisage selon criteres

sim

XLDnaute Occasionnel
Bonjour a toutes et a tous!

Bon alors, la je suis bloque bloque!! Et j'ai bien besoin de votre aide:D

Alors voila, j'ai une feuille de donnees que je travail avec une macro, elle fonctionne tout va bien ( grace a vous d'ailleur :eek: !!)

Cette macro est place dans un module standard

Mais j'aimerai rajouter un derniere element a cette macro attention, on s'accroche!!!

Dans ma feuille (GMRB_Raw_Data):

Je voudrai inserer une colone entre la colone G et H
Cette colonne s'appelerai "Affiliate Type"
Trois valeur seraient presente dans cette colone.
Ces valeurs sont determine par la valeur en colone G ou en colone H

Valeur 1 "Tolling"

Cette valeur devrait s'afficher si le nom en colonne H est egale a un des noms presents dans le tableau en Feuille1

Valeur 2 "Non Tolling"

Cette valeur devrait s'afficher si en colonne G est ecrit Affiliate ET que le nom de la colone H n'est pas present dans le tableau de la feuille1

Valeur 3 : "vide"

On laisse vide la cellule de la colone creee, si en colone H, on a "TPM", ou "Other"

Dans mon exemple, je met en Feuille 2 le resultat escompter, fait a la main bien sur.....
lol et j'ai bas besoin des couleurs, c'est juste pour imager la logique!!:rolleyes:

Et puis je vous met le code ( present dans mon exemple eggalement) qui travail la feuille de donnee, il faudra inserer le nouveau code a ce code existant.

Code:
Sub supp()
Dim dl As Integer
Dim x As Integer
  With Application: .ScreenUpdating = 0: .Calculation = -4135: .EnableEvents = 0: End With
  With ActiveSheet
    .Columns("I").Replace "-", "--->", LookAt:=xlPart
    dl = .Range("I65536").End(xlUp).Row
    For x = dl To 1 Step -1
      If .Cells(x, 9).Value = "" Or .Cells(x, 13) < 0 Then .Rows(x).Delete
    Next x
  End With
  With Application: .ScreenUpdating = 1: .Calculation = -4105: .EnableEvents = 1: End With
End Sub


Evidemment j'ai essayer de proceder par enregistrement, bon deja c'est tres rigide, car le jour ou j'ai une nouvelle usine "tolling" je suis obliger de rentrer dans le code, et comme je serai plus la personne le fera. Et puis en plus ca marche pas....

Je vous le met quand meme...(ici je voulais juste rajouter la valeur pour une seul usine (nom: FAB....)

Code:
Sub test()
'
' test Macro
' Macro recorded 4/8/2011 by

'
    Columns("H:H").Select
    Selection.Insert Shift:=xlToRight
    Selection.AutoFilter Field:=7, Criteria1:="Affiliate"
    Selection.AutoFilter Field:=9, Criteria1:="FAB.GmbH&CoKG"
    Range("H11").Select
    ActiveCell.FormulaR1C1 = "Tolling"
    Selection.FillDown
    
End Sub


Voili Voilou,

Merci d'avance pour votre aide si precieuse!!!

Sim
 

Pièces jointes

  • macro_rajout_colonne.zip
    233.6 KB · Affichages: 46
Dernière édition:

sim

XLDnaute Occasionnel
Re : Macro ajout de colone, puis remplisage selon criteres

Cher Forum!!!!

Je vois quelques affichages, mais pas de reponse.....avez vous besoin de plus de details??? (meme si je crois que c'est asses detaille!! lol) d'une explication supplementaire??? d'une intervention divine??!! lol

Sim
 

Dranreb

XLDnaute Barbatruc
Re : Macro ajout de colone, puis remplisage selon criteres

Bonjour.
Ça pourrait être fait avec des formules
Et il n'y aurait même pas eu à retoucher les macros qui travaillent sur les colonnes au delà si on leur avait donné des noms !
Celà n'est hélas pas le cas. Tirez en la leçon !
À +
 

sim

XLDnaute Occasionnel
Re : Macro ajout de colone, puis remplisage selon criteres

Le forum, Dranreb

Ma feuille de donnee est suppimer et recree a chaque fin de mois....

D'ou la macro qui travaille la feuille...donc a moins que je me trompe, (et c'est fort possible! :rolleyes:) on ne peux pas utiliser de formule dans cette feuille.....a moins de definir les formules par macro...non??

C'est pour ca que je n'utilise pas de nom ( ou il faudrait alors defnir les nom par macro)

Donc avec ces nouveaux elements, pensez vous qu'on puisse travailler avec des formules, ou mon idee de mettre en place un code capable de realiser cette tache etait elle bien la bonne solution?

Si tel est le cas, accpeteriez vous de m'aider a mettre ce code en place??

Merci bcp pour m'avoir repondu!!

Cordialement

Sim

Edit: vous ne pouvez pas le savoir, mais j'utilise beaucoup les noms, j'y met meme des formules DECALER() enfin OFFSET() puisque ma version d'excel est anglaise....j'avais donc bien deja recu cette lecon...peut etre pas appliquee jusqu'au bout...:(

Edit#2

Voici le code que j'utilise en vrai!!! lol

Code:
Sub S_FX_traitement()
Dim dl As Integer
Dim X As Integer
  With Application: .ScreenUpdating = 0: .Calculation = -4135: .EnableEvents = 0: End With
  With ActiveSheet
    .Columns("I").Replace "-", "--->", LookAt:=xlPart
    dl = .Range("I65536").End(xlUp).Row
    For X = dl To 1 Step -1
      If .Cells(X, 9).Value = "" Or .Cells(X, 13) < 0 Then .Rows(X).Delete
    Next X
  End With
  With Application: .ScreenUpdating = 1: .Calculation = -4105: .EnableEvents = 1: End With
  ActiveSheet.Name = "FX"
[B]  ActiveWorkbook.Names.Add Name:="basetcdauto", RefersToR1C1:= _
  "=OFFSET(FX!R1C1,0,0,COUNTA(FX!C1),14)"[/B]End Sub
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Macro ajout de colone, puis remplisage selon criteres

Bonjour sim

Salut Dranreb

A tester:

VB:
Sub test1()
    tablo = Sheets("Sheet1").Range("C10:C16")
    Columns("H:H").Select
    Selection.Insert Shift:=xlToRight
    For n = 2 To Range("I65536").End(xlUp).Row
       If Range("G" & n) <> "TPM" Then
        For m = LBound(tablo, 1) To UBound(tablo, 1)
           If Range("I" & n) = tablo(m, 1) Then
             ok = True
             Exit For
           End If
        Next m
       If ok = False Then
          Range("H" & n) = "Non Tolling"
       Else
          Range("H" & n) = "Tolling"
       End If
       Else
        Range("H" & n) = ""
       End If
       ok = False
    Next n
End Sub
 

sim

XLDnaute Occasionnel
Re : Macro ajout de colone, puis remplisage selon criteres

Bonjour a tous!!

Le code de PierreJean fonctionne parfaitement!!!;)

Seul petit truc auquel je n'avais pas penser c'est mettre le titre de la colone,

sauriez vous comment je peux faire ca....autrement que:

Code:
    Range("H1").Select
    ActiveCell.FormulaR1C1 = "Affiliate Type"

Merci d'avance...


Sim
 

sim

XLDnaute Occasionnel
Re : Macro ajout de colone, puis remplisage selon criteres

Merci bcp PierreJean!! , le forum

Un probleme de moins! Franchement chapeau!

Bon maintenant je passe un autre probleme de taille....dans un une autre discussion!! hehe

Encore merci

Sim
 

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin