récupRécupération d’une variable dans des cases Excel

  • Initiateur de la discussion Initiateur de la discussion hanim
  • 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 !

H

hanim

Guest
Bonjour tout le monde,

Je veux faire une macro VBA pour récupérer une variable numérique dans une case de mon fichier Excel pour en suite générer des lignes correspondant à la valeur de cette variable (dans mon exemple en pièce jointe trois articles en la réf 1 donc je veux récupérer l’entier 3). Pour qu’à la suite faire une boucle pour générer 3 lignes dans le même ou un autre fichier Excel (trois ligne : ref1.1 ; ref1.2 ; ref1.3).
J’espère que quelqu’un sait comment faire pour récupérer la variable et que j'étais +ou - claire!😕
Je reste à votre disposition pour toute question.

Merci d’avance.
 

Pièces jointes

Re : récupRécupération d’une variable dans des cases Excel

Re 🙂,
Allez, mais totalement par hasard 🙄...
Code:
Sub Test2()
Dim DerLig As Integer, I As Integer, Message As String
Dim Feuille As Worksheet, Base As Worksheet, Flag As Boolean
Set Base = ActiveSheet
DerLig = Base.Range("A65536").End(xlUp).Row
For I = 2 To DerLig
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name = Base.Cells(I, 1) Then Flag = True
Next Feuille
If Flag = True Then
Message = Message & Base.Cells(I, 1) & " ; "
Flag = False
Else
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = Base.Cells(I, 1)
End If
Next I
If Message <> "" Then
Message = Left(Message, Len(Message) - 3)
Message = "Les feuilles suivantes n'ont pu être créées car elles existaient déjà :" _
    & vbCrLf & Message
MsgBox Message, vbCritical + vbOKOnly, "ATTENTION !"
End If
End Sub
Bises 😎
 
Re : récupRécupération d’une variable dans des cases Excel

Bonjour,

merci bcp, et tu sais quoi comme par hasard ça marche ton code !! 😱
tu es vraiment balaise 😎
merci encore une fois 🙂
Bonne journée
 
Re : récupRécupération d’une variable dans des cases Excel

Bonjour,

merci bcp, et tu sais quoi comme par hasard ça marche ton code !! 😱
tu es vraiment balaise 😎
merci encore une fois 🙂
Bonne journée

rebonjour JNP
finalement je pense que ça ne va finir! 😱

bon voila la dernière modif que je dois faire c'est de prendre la partie concenrant les articles avec leurs refs et de les copier dans les nouvelles feuilles crées .

bon ça à l'aire pas compliquer sauf que je ne sais pas par quoi commencer 😕

merci et bon weekend 🙂
 
Re : récupRécupération d’une variable dans des cases Excel

eh oui la tu as raison c'est plus fort que moi ! 😉
bon la j'ai mis un article de ce que je veux avoir.
une autre question, quand j'ai dans une case deux artticle :
quand c'est séparer par ; la méthose ne marche pas
de toute façon je ne sais pas est ce que c'est possible de générer à chacun des articles sa propre feuille. séparer ou pas par ;

bon et je pense que cette fois c'est la dérnière 😀

bonne journée et merci bcp bcp bcp
 

Pièces jointes

Re : récupRécupération d’une variable dans des cases Excel

Bon la copie marche bien ! ça j'ai bien compris merci 😱
sauf que je ne sais toujours pas comment séparer les données dans une cellule sur des lignes ! 😕
je veut quand j'ai une cellule avec par exemple (livre; roman) j'ai deux lignes une pour livre et une pour roman comme ça je pourrais créer deux feuilles une pour livre et autre pour roman !

bon merci beaucoup JNP et bon week ennnnnnnd🙂
 
Dernière modification par un modérateur:
Re : récupRécupération d’une variable dans des cases Excel

Re 🙂,
2 lignes ou 2 feuilles 😕...?
A tester
Code:
Sub Test()
Dim DerLig As Integer, DerCol As Integer, Ligne As Integer
Dim I As Integer, J As Integer, K As Integer, L As Integer
Dim Message As String, MonNom As String, Temp
Dim Feuille As Worksheet, Base As Worksheet, Flag As Boolean
Set Base = ActiveSheet
DerLig = Base.Range("A65536").End(xlUp).Row
For I = 2 To DerLig
Temp = Split(Base.Cells(I, 1), ";")
For L = LBound(Temp) To UBound(Temp)
MonNom = Application.WorksheetFunction.Proper(Trim(Temp(L)))
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name = MonNom Then Flag = True
Next Feuille
If Flag = True Then
Message = Message & MonNom & " ; "
Flag = False
Else
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = MonNom
End If
Ligne = 2
With Sheets(MonNom)
.Cells.Clear
.Range("A1:C1").Interior.ColorIndex = 36
.Range("A1:C1").Font.Bold = True
.Range("A1") = "Article"
.Range("B1") = "Référence"
.Range("C1") = "Date d'arrivée"
DerCol = Evaluate("COUNTA(Feuil1!C" & I & ":D" & I & ")") + 2
If DerCol <> 2 Then
.Range("A" & Ligne) = MonNom
.Range("A" & Ligne).Font.Bold = True
.Range("A" & Ligne).Interior.ColorIndex = 24
End If
For J = 3 To DerCol
For K = 1 To Base.Cells(I, J)
.Range("B" & Ligne) = Application.WorksheetFunction.Proper(Base.Cells(1, J)) & "." & K
.Range("C" & Ligne) = Base.Cells(I, 5)
Ligne = Ligne + 1
Next K
Next J
With .Range("A1:C" & Ligne - 1)
.EntireColumn.AutoFit
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
End With
Next L
Next I
If Message <> "" Then
Message = Left(Message, Len(Message) - 3)
Message = "Les feuilles suivantes n'ont pu être créées car elles existaient déjà :" _
    & vbCrLf & Message
MsgBox Message, vbCritical + vbOKOnly, "ATTENTION !"
End If
End Sub
Bises 😎
 
Re : récupRécupération d’une variable dans des cases Excel

Bonjour JNP,

j'ai une chose à te dire, JNP tous mes respects tu es vraiment balaise 😱 en VBA.
franchement, merci beaucoup beaucoup.
Bonne journée et bonne semaine . 🙂

alors, comme dab eh !! il y a toujours un truc en plus ! alors le petit probleme c'est quand j'ai des donnée en double voir exemple. la feuille ne se cree pas , en fait il se cree une fois au départ mais pas une deuxième !
 

Pièces jointes

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

D
Réponses
4
Affichages
434
DidPouAxi
D
Retour