Re: ecart
#11
Semi pro XLPages

Inscription: 30/01/2012
De Crévecoeur

Messages: 108

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 18-03-2012 12h48
Bonjour Jean-Marie,Bonjour le Forum,
je te remerci pour ta patience et ton aide;au vue des 450 fichiers de même composition pour le stockage, chaque fichier traitant 30 tables, comme table A mes sur un stockage de 100 lignes ,ne serai t'il pas mieux de traiter cela par macro aux vue des modifications à apporté sur chaque fichier ? une fois encore je te remerci de ton aide efficace ,j'ai commence en instalent à leurs place les formules que tu me fourni et en reutilisant comme indiqué la table du précedant fil ,cela semble correspondre à ce que je desire faire ,je vais adapté cela à un de mes fichiers et voir ce que cela donne au final en modification et place . autodidacte de nature ,tres interessé par le vba je demande toujours que l'on me detail autant que cela est possible ce qui fait (formule ou code )au fin de progressé dans mon projet .je te remerci donc encore du partage de ton aide et ton temps
Hors Ligne
Rapport   Haut 

Re: ecart
#12
Semi pro XLPages

Inscription: 30/01/2012
De Crévecoeur

Messages: 108

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 19-03-2012 20h09
bonsoir Jean-Marie ,Bonsoir le forum,
Grand merci à Jean-Marie pour son aide ... tout est beaucoup plus clair maintenant .
merci
Hors Ligne
Rapport   Haut 

Re: ecart
#13
Semi pro XLPages

Inscription: 30/01/2012
De Crévecoeur

Messages: 108

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 19-03-2012 20h09
bonsoir Jean-Marie ,Bonsoir le forum,
Grand merci à Jean-Marie pour son aide ... tout est beaucoup plus clair maintenant .
merci
Hors Ligne
Rapport   Haut 

Re: ecart
#14
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 19-03-2012 20h27
 Bonsoir Mahelnawe, Didier, Le Forum

Ci-joint un code VBA qui traite une cellule colonne, il est facile de l'adapter pour traiter les 7 autres colonnes
Option Base 1

Sub Ecart()
'Déclaration des tableaux
Dim TabEcart() As Integer, TabArv() As Integer
'Déclaration des variables
Dim I As Integer, J As Integer, Z As Integer
Dim Connu As Boolean

'Calcul du dernier écart
'le tableau TabEcart est défini comme tableau à 3 colonnes
    'la première colonne contiendra la valeur de la cellule
    'la deuxième colonne contiendra le dernier écart connu suivant TabEcart(1,n)
    'la troisième colonne contiendra la dernière ligne connue suivant TabEcart(1,n)
   
'le tableau TabArv contiendra la position dans le quinté

'Remise à zéro des variables
ReDim TabEcart(3, 1)
Z = 0

'Récupération de données sur la feuille de calcul "stc"
With Worksheets("stc")
    'on commence à la ligne 3 jusqu'à la ligne ...
    For I = 3 To .Range("J65536").End(xlUp).Row
        Connu = False
        'on teste si la valeur de la cellule Cells(I,10) est déjà connu dans le tableau
        'la variable Z étant le nombre de valeurs uniques connues
        For J = 1 To Z
            If .Cells(I, 10) = TabEcart(1, J) Then
                Connu = True
                'Calcul de l'écart entre la nouvelle ligne et l'ancienne ligne conue de la valeur Cells(I, 10)
                TabEcart(2, J) = I - TabEcart(2, J)
                'Mémorisation de la ligne dans le tableau
                TabEcart(3, J) = I
                'on sort de la boucle
                Exit For
            End If
        Next J
        'Si la variable connu est false, la valeur Cells(I, 10) est une nouvelle valeur unique
        If Connu = False Then
            Z = Z + 1
            'ajout dans le tableau d'uan nouvelle ligne
            ReDim Preserve TabEcart(3, Z + 1)
            'mémorisation des valeurs dans le tableau
            TabEcart(1, Z) = .Cells(I, 10)
            TabEcart(2, Z) = 0
            TabEcart(3, Z) = I
        End If
       
        ReDim Preserve TabArv(I - 2)
        TabArv(I - 2) = -1
        'Cells(I, 10) est-il dans le quinté
        'on commence à la colonne 2, et sur 5 colonnes
        'l'index de ligne est donné par la valeur de la boucle principale
        For J = 2 To 6
            If .Cells(I, 10) = Worksheets("arv").Cells(I - 1, J) Then
                TabArv(I - 2) = J - 1
                Exit For
            End If
        Next J
    Next I
End With

'Calcul de l'écart pondéré entre l'écart et le quinté
With Worksheets("ect")
'on commence à la ligne 18 sur le nombre valeur connue dans TabArv
    For I = 18 To (UBound(TabArv) + 17)
        Cells(I, 6) = IIf(TabArv(I - 17) = -1, .Cells(I - 1, 6) - 1, TabArv(I - 17))
        For J = 1 To UBound(TabEcart())
            If TabEcart(1, J) = TabArv(I - 17) Then
                .Cells(I, 6) = .Celle(I, 6) + (TabEcart(2, J) / 100)
                Exit For
            End If
        Next J
    Next I
End With
End Sub
J'ai testé la macro, uniquement sur les valeurs de ton fichier, teste le STP.
J'espère qu'il n'y a pas trop de bêtises de dites, ou des abérations de programmation... étant plus un spécialiste dans les formules

@+Jean-Marie


Hors Ligne
Rapport   Haut 

Re: ecart
#15
Semi pro XLPages

Inscription: 30/01/2012
De Crévecoeur

Messages: 108

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 19-03-2012 22h59
Bonsoir Jean-Marie,Bonsoir le Forum,
Un grand merci à toi Jean-Marie pour ce code totalement inatendue et inesperé ,je me mes au travaille et te dirai ce que cela donne ,le temps pour moi de mis mettre ....
Encors une fois Grand merci à toi Jean-marie pour tout cela ....

il semble pour une premiere approche que ne s'affiche que la corespondance position arrivée sans l'ecart ....
Edité par mahelnawe le 20/03/2012 05:10:25
Hors Ligne
Rapport   Haut 

Re: ecart
#16
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 24-03-2012 07h23
Bonjour Laurent, Didier, le Forum

J'ai lu ton nouveau fil en me demandant d'expliquer certaines parties du code qui se trouve ici, et ta réponse au poste de Myta. J'attendais que tu reviennes ici...

On va faire l'inverse, au lieu que se soit moi qui te donne les explications de certaines lignes du code, c'est toi qui va écrire ce que tu imagines ou avoir compris. N'oublie pas il y a l'aide en ligne pour savoir ce que fait une méthode, ce que retourne une propriété, etc.

@+Jean-Marie


Hors Ligne
Rapport   Haut 

Re: ecart
#17
Semi pro XLPages

Inscription: 30/01/2012
De Crévecoeur

Messages: 108

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 24-03-2012 15h49
Bonjour Jean-Marie,
Beaucoup plus simple vue de loin ,moin simple quand on s'y cole .
Un grand merci à toi de m'apporté ton aide ,je m'applique à cela et revient vers toi , j'espere ne pas être trop ridicule à l'arrivée ..
au premier abors je comprend que l'on ce deplace en pointant sur une ligne et on decal de position sur  ligne en position sur ligne ..
je prepare ce que tu me demande et je revient ..
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes