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:
Cordialement
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
Partager