Bonjour à tous,

Sous VBA, j'ai effectué une macro ayant pour but d'identifier les titres de colonnes et de les transférer dans une autre feuille de calcul.
Pour cela, j'ai créer un tableau de chaine de caractères à dimension fixe où pour chaque "case" du tableau il y a une chaine de caractères (un titre).
J'ai fais une boucle pour chaque "case" du tableau.

Ma macro marche correctement, le problème subsiste pour deux colonnes seulement.

En effet, pour la 1ère colonne que je veux transférer, son titre est "RB1".
Or la colonne juste avant a pour titre "S_RB1" et mon programme prend en compte le fait qu'il voir bien le titre "RB1" mais pas de la bonne colonne. Il transfert la colonne d'avant (titre "S-RB1").

Voici une partie de mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Public Sub Transfert()
 
   Dim FeuilleSari As Worksheet, FeuilleSortie As Worksheet, Cellule As Range
      Dim NumColonneSari As Long, NumColonneSortie As Long, Titre(8) As String, i As Byte
    Set FeuilleSari = Worksheets("Sari")
    Set FeuilleSortie = Worksheets("Sortie1")
    NumColonneSortie = 2   'numéro de colonne initial
 
  'Tableau des titres
    Titre(0) = "N__RENTE"
    Titre(1) = "BR"
    Titre(2) = "SIN_CONT"
    Titre(3) = "ETAT"
    Titre(4) = "DATE_SURV"
    Titre(5) = "NOM_TITU"
    Titre(6) = "PRE_TITU"
    Titre(7) = "DER_REG"
    Titre(8) = "RB1"
 
    'transfert des données
    For i = 0 To 8
        Set Cellule = FeuilleSari.Cells.Find(Titre(i))
        If Cellule Is Nothing Then
            MsgBox "Le titre n'a pas été trouvé"
        Else
            NumColonneSari = Cellule.Column
            FeuilleSari.Columns(NumColonneSari).Copy
            FeuilleSortie.Paste Destination:=FeuilleSortie.Columns(NumColonneSortie)
        End If
        NumColonneSortie = NumColonneSortie + 1
    Next i
End Sub
Cordialement