Création Macro VBA conditionnelle

Bonjour,

J'aimerais transformer sous la forme d'une ou plusieurs Macro VBA, les calculs réalisés dans le fichier joint.

Dans les colonnes A et B , j'ai indiqué les données d'entrées et en colonne D et E, le résultat souhaité.

Pour résumé, pour chaque produit, nous pouvons avoir 3 types d'accès. Le but de rappeler ,dans les lignes vides entre 2 types de produits et d'accès,

  • le n° du produit ( colonne D)
  • le type d'accès ( colonne E)

J'arrive au résulat avec des formules excel mais le fichier initial contient 40 000 lignes et cela me prend beaucoup de temps de modifier les formules une à une en fonction du changement du type de produit ou d'accès.

Je vous remercie par avance de votre aide sur la création d'une macro VBA et la simplification des formules.

Lien vers le fichier:

https://www.excel-pratique.com/~files/doc2/aX4uWClasseur1.xls

Bonjour,

Combien y-a t-il d"accès ? (acces 1, acces 2 etc..)

fait un tableau avec les lettres correspondantes (AA, AB, AP etc..)

Claude.

Bonjour,

Il y a trois type d'accès :

  • Accès 1
  • Accès 2
  • Accès 3

et

Accès 1 = AA

Accès 2 = AB

Accès 3 = AP

Merci d'avance

Bonjour,

essaie ce code à placer en VBA et à associer à un bouton

Sub test()
'Macro Dan pour choudoudou le 16/05/2009
'http://www.excel-pratique.com/forum/viewtopic.php?t=11428
Dim cel As Range
Dim prod As String, acces As String
Dim i As Integer

i = 50
For Each cel In Range("A3:A" & i)
If Not IsEmpty(cel) Then prod = cel: acces = cel.Offset(0, 1)
If IsEmpty(cel) Then
cel.Offset(0, 3) = prod

Select Case acces
Case Is = "Acces 1"
cel.Offset(0, 4) = "AA"

Case Is = "Acces 2"
cel.Offset(0, 4) = "AB"
Case Is = "Acces 3"
cel.Offset(0, 4) = "AP"

End Select
End If
Next
End Sub

Amicalement

Dan

Merci beaucoup Nad-Dan, la macro fonctionne parfaitement et correspond à ce que je recherchais.

Bon week end

re,

Salut Dan, tu as été + rapide,

Peux-tu jeter un œil sur ma question de 10h ?

Claude.

Rechercher des sujets similaires à "creation macro vba conditionnelle"