Extraire une partie de cellule en VBA

chicoelmatador

XLDnaute Nouveau
Bonjour le forum,

j'ai une macro qui permet d'extraire une database à partir d'un planning, mais il me manque une étape : dans le doc ci-joint, je souhaite extraire de la colonne D (onglet "database")
1. le nom du Projet, qui est toujours suivi d'un saut de ligne dans le planning
2. le nom du Lieu qui est écrit sur la 2e ligne (en-dehors du "!")
3. le caractère "!" qui peut être présent ou non.

En gros je veux faire des extraits GAUCHE() et DROITE(), mais mes tentatives jusqu(là sont infructueuses.

Dans l'exemple, j'ai mis ce à quoi ressemble la database avec la macro actuelle, et ce à quoi elle devrait ressembler.

D'avance merci !
 

Pièces jointes

  • Test macro planning-database.xlsm
    20.6 KB · Affichages: 112

wilfried_85

XLDnaute Nouveau
Re : Extraire une partie de cellule en VBA

bonjour

voici ta macro avec explication
Sub Database()

Application.ScreenUpdating = False

Dim i, j, k, l As Integer
Dim Jour, Tech, Projet, Lieu, Dispo As String
Dim tablo As Variant ' definition du variable
k = 3
For j = 3 To 5
For i = 3 To 12

If Not Cells(j, i) Is Nothing Then
Sheets("Planning").Select
Jour = Cells(2, i).Value
Tech = Cells(j, 2).Value
Projet = Cells(j, i).Value
Sheets("Database").Select
Cells(k, 2).Value = Jour
Cells(k, 3).Value = Tech
Projet = Replace(Projet, Chr(10), "!") ' remplacement du caracter saut de ligne par un !
tablo = Split(Projet, "!") ' deconcatenation de la chaine en fonction des !
For l = LBound(tablo) To UBound(tablo) ' selon le nombre de données : 0, 1 ou 2
Cells(k, 4 + l).Value = tablo(l) ' mise en place des données
Next l
If l = 3 Then Cells(k, 6) = "!" ' si l = 3 alors il y a 3 données on met le !
k = k + 1
End If

Next i
Next j

Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 571
Messages
2 089 808
Membres
104 278
dernier inscrit
LENZY