Faire un résumé de tableau d'un puits de pétrole

Salut à tous !

Je travaille en ce moment sur les documents de suivi d'activité sur les puits pétroliers.

J'apprend donc le VBA pour pouvoir compiler une série de documents à partir de deux tableaux qui détaillent la composition de l'équipement à l'intérieur des puits.

On a :

- un tableau pour les tube de production : "tbg"

- un tableau pour les tige de pompage :" SR"

Je souhaiterais résumér ces deux tableaux et je n'y arrive pas !!

Pouvez vous m'aider ?

Je vous mets un fichier avec deux tableaux détaillés qui sont les sources de données et deux tableaux résumé sont les tableaux que je cherche à obtenir.

Merci pour toute l'aide que vous pourrez m'apporter.

Coridialement

17objectif2.xlsm (50.49 Ko)

HopHopHop

Je suis disponible si vous avez besoin de plus d'informations !!!

Voilà un bout de code que j'ai fait.

Pouvez-vous m'aider à résoudre ce soucis ?

J'ai déjà essayé :

- RemoveDupplicates

- array_duplicates_delete

Mais ça ne donne rien.

Sub résumé_tbg()

'Attention ! Il s'agit du code le plus compliqué aue j'ai tapé.
'Je ne suis pas informaticien, j'apprend tout seul.

'Déclaration des vairable tableaux pour le grade et les manchons.
Dim _
tab_grade(302), _
tab_fil(302), _
tab_dia(302), _
tab_typ(302) _
As Variant

'déclaration des variable d'incrémentations.
Dim _
max, _ 'compte le nombre maximum de ligne
ligne, _ 'donne les coordonnées ligne de la feuille source
colonne, _ 'donne les coordonnées colonnede la feuille source
lig_col, _ 'donne les coordonnées ligne de la feuille cible
col_col, _ 'donne les coordonnées colonne de la feuille cible
i, _ 'compte le nombre d'élément numéroté
j _ 'donne la coordonnée ligne des tableaux tab_grade(302), tab_fil(302), tab_dia(302), tab_typ(302) 

'Déclaration des variables d'analyses du contenu de la tally SR
'et des variable de résumé de tally SR
Dim _
nombre, _ 'nombre d'élément numéroté
grade, _ 'grade d'acier des tubes
dia, _ 'diamètre des tubes
typ, _ 'type d'éléments
fil, _ 'type de filetage
prof _ 'profondeur
As Variant

Set Data = Sheets("Tally_tbg_SMP").Range("A3:A302") 'range des données sources

'Construction de la feuille et du tableau de résumé.
'Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Résumé_tally_tbg"
Range("A1").Select

'situation initiale des compteurs
i = 0
j = 0
ligne = 1
colonne = 1
lig_col = 1
col_col = 1

While Data.Cells(ligne, 1) <> "" 'exécuter tant que la ligne sélectionner n'est pas vide.
i = i + 1
    If Data.Cells(ligne, 6) = "x" Then 'les éléments marqués par un X sont remarquables.
    'ici, j'aimerais mettre un bout de code pour supprimer les doublons des variables tableaux 
    'et concatener les éléments identiques des variables tableaux dans une cellule du tableau cible.

    nombre = 1
    i = 0
    j = 0
    Erase tab_grade
    Erase tab_fil
    Erase tab_dia
    Erase tab_typ

        For colonne = 1 To 10 'récupérer les informations dans le range Data
        Sheets("Tally_tbg_SMP").Select
        Data.Cells(ligne, colonne).Select
            If colonne = 1 Then
            dia = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 2 Then
            typ = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 3 Then
            grade = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 4 Then
            fil = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 9 Then
            prof = Data.Cells(ligne, colonne).Text
            End If
        Next
    Sheets("Résumé_tally_tbg").Select 'coller les informations dans le tableau cible
    Range("A1").Select
        For col_col = 1 To 6
        Cells(lig_col, col_col).Select
            If col_col = 1 Then
            Cells(lig_col, col_col) = typ
            ElseIf col_col = 2 Then
            Cells(lig_col, col_col) = dia
            ElseIf col_col = 3 Then
            Cells(lig_col, col_col) = fil
            ElseIf col_col = 4 Then
            Cells(lig_col, col_col) = grade
            ElseIf col_col = 5 Then
            Cells(lig_col, col_col) = nombre
            ElseIf col_col = 6 Then
            Cells(lig_col, col_col) = Round(prof, 2)
            End If
        Next
    Else 'si les éléments sont numérotés

    i = i
    nombre = i

        For colonne = 1 To 10 'récupérer les données dans le range Data et les mettre dans l'espace (j) du tableau choisit
        Sheets("Tally_tbg_SMP").Select
        Data.Cells(ligne, colonne).Select
            If colonne = 1 Then
            tab_dia(j) = Data.Cells(ligne, colonne).Text

            ElseIf colonne = 2 Then
            tab_typ(j) = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 3 Then
            tab_grade(j) = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 4 Then
            tab_fil(j) = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 9 Then
            prof = Data.Cells(ligne, colonne).Text
            End If

        Next
j = j + 1
    End If

ligne = ligne + 1
Wend

End Sub

Les commentaires sur le code posent problème avec Visual Basic donc voici le code avec moi de commentaires :

Sub résumé_tbg()

'Attention ! Il s'agit du code le plus compliqué aue j'ai tapé.
'Je ne suis pas informaticien, j'apprend tout seul.

'Déclaration des vairable tableaux pour le grade et les manchons.
Dim _
tab_grade(302), _
tab_fil(302), _
tab_dia(302), _
tab_typ(302) _
As Variant

'déclaration des variable d'incrémentations.
Dim _
max, _
ligne, _
colonne, _
lig_col, _
col_col, _
i, _
j _
As Integer

'Déclaration des variables d'analyses du contenu de la tally SR
'et des variable de résumé de tally SR
Dim _
nombre, _
grade, _
dia, _
typ, _
fil, _
prof _
As Variant

Set Data = Sheets("Tally_tbg_SMP").Range("A3:A302")

'Construction de la feuille et du tableau de résumé.
'Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Résumé_tally_tbg"
Range("A1").Select

i = 0
j = 0
ligne = 1
colonne = 1
lig_col = 1
col_col = 1

While Data.Cells(ligne, 1) <> ""
i = i + 1
    If Data.Cells(ligne, 6) = "x" Then
    nombre = 1
    i = 0
    j = 0
    Erase tab_grade
    Erase tab_fil
    Erase tab_dia
    Erase tab_typ

        For colonne = 1 To 10
        Sheets("Tally_tbg_SMP").Select
        Data.Cells(ligne, colonne).Select
            If colonne = 1 Then
            dia = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 2 Then
            typ = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 3 Then
            grade = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 4 Then
            fil = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 9 Then
            prof = Data.Cells(ligne, colonne).Text
            End If
        Next
    Sheets("Résumé_tally_tbg").Select
    Range("A1").Select
        For col_col = 1 To 6
        Cells(lig_col, col_col).Select
            If col_col = 1 Then
            Cells(lig_col, col_col) = typ
            ElseIf col_col = 2 Then
            Cells(lig_col, col_col) = dia
            ElseIf col_col = 3 Then
            Cells(lig_col, col_col) = fil
            ElseIf col_col = 4 Then
            Cells(lig_col, col_col) = grade
            ElseIf col_col = 5 Then
            Cells(lig_col, col_col) = nombre
            ElseIf col_col = 6 Then
            Cells(lig_col, col_col) = Round(prof, 2)
            End If
        Next
    Else

    i = i
    nombre = i

        For colonne = 1 To 10
        Sheets("Tally_tbg_SMP").Select
        Data.Cells(ligne, colonne).Select
            If colonne = 1 Then
            tab_dia(j) = Data.Cells(ligne, colonne).Text

            ElseIf colonne = 2 Then
            tab_typ(j) = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 3 Then
            tab_grade(j) = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 4 Then
            tab_fil(j) = Data.Cells(ligne, colonne).Text
            ElseIf colonne = 9 Then
            prof = Data.Cells(ligne, colonne).Text
            End If

prochaine_boucle:
        Next
j = j + 1
    End If

ligne = ligne + 1
Wend

End Sub
Rechercher des sujets similaires à "resume tableau puits petrole"