Extraire une partie de cellule en VBA

  • Initiateur de la discussion Initiateur de la discussion chicoelmatador
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

chicoelmatador

Guest
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

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 modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour