Bonjour,
J'ai commencé une boucle mais je bloque à partir de :
Mon objectif est de traiter les lignes présente dans l'onglet tri, à partir de la seconde ligne jusqu'à la dernière ligne. Je ne traite pas la 1ère ligne.
Pour chacune de ces lignes je dois faire un petit traitement qui me permet de récupérer une données exploitable. (cette partie je devrais réussir tout seul)
Pour chacune de ces ligne je dois :
insérer une ligne correspondante dans l'onglet Feuil1(sauf pour la première données qui va utiliser la ligne j d'origine),
coller les données de la ligne J sur les lignes inserer
Ajouter enfin les données de la feuille tri dans la colonne F
Exemple
Feuille 1 ligne j = T-shirt (il n'est présent qu'une fois)
Feuille tri : rouge/bleu/vert 1 couleur sur chaque ligne
résultat désirer:
Merci pour votre aide
J'ai commencé une boucle mais je bloque à partir de :
Code:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''JUSQUE LA TOUT MARCHE''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Mon objectif est de traiter les lignes présente dans l'onglet tri, à partir de la seconde ligne jusqu'à la dernière ligne. Je ne traite pas la 1ère ligne.
Pour chacune de ces lignes je dois faire un petit traitement qui me permet de récupérer une données exploitable. (cette partie je devrais réussir tout seul)
Pour chacune de ces ligne je dois :
insérer une ligne correspondante dans l'onglet Feuil1(sauf pour la première données qui va utiliser la ligne j d'origine),
coller les données de la ligne J sur les lignes inserer
Ajouter enfin les données de la feuille tri dans la colonne F
Exemple
Feuille 1 ligne j = T-shirt (il n'est présent qu'une fois)
Feuille tri : rouge/bleu/vert 1 couleur sur chaque ligne
résultat désirer:
T-shirt | rouge | |
| bleu | |
| vert | |
| autre couleur en fonction du nombre de ligne présent dans la feuille tri |
Merci pour votre aide
VB:
Sub boucle_attribut()
'Définition des variable
Dim L As Worksheet, C As Worksheet, adresse_URL As String, attribut As String
Dim Trouve As Range, PlageDeRecherche As Range
Dim disponible As String, DL As Integer, j As Integer, indisponible As String, tablo
Dim Cpt As Integer, CptSh As Integer
'vérification que l'onglet code source existe sinon création
Cpt = 0
CptSh = Sheets.Count
For i = 1 To CptSh
If Sheets(i).Name <> "code source" Then Cpt = Cpt + 1 Else Exit For
Next i
If Cpt = CptSh Then
Sheets.Add.Name = "code source"
End If
'vérification que l'onglet tri existe sinon création
Cpt = 0
CptSh = Sheets.Count
For i = 1 To CptSh
If Sheets(i).Name <> "tri" Then Cpt = Cpt + 1 Else Exit For
Next i
If Cpt = CptSh Then
Sheets.Add.Name = "tri"
End If
'Affectation de valeur aux variable
Set L = Worksheets("Feuil1") 'Je définie mon onglet Feuil1 par L
Set C = Worksheets("code source") 'Je définie mon onglet code source par C
Set T = Worksheets("tri")
DL = L.Cells(Application.Rows.Count, "A").End(xlUp).Row '
For j = 81 To 81 'test sur la ligne 81
adresse_URL = L.Cells(j, 1) 'L'adresse URL se trouve dans la feuille L (liste)
codeHtml = htmlCodePage(adresse_URL) 'j'affecte ma variable adresse_URL a ce petit boût de code qui necessite un pack complémentaire pour fonctionner
Sheets("code source").Activate 'J'active la feuille ou je veux les données
codeHtml = Split(codeHtml, Chr(10)) 'Division par ligne de code
For i = 0 To UBound(codeHtml) 'je ne comprend pas cette partie du code
Cells(i + 1, 1) = codeHtml(i) 'je ne comprend pas cette partie du code
Next 'je ne comprend pas cette partie du code
'résultat je me retrouve avec le code source sur l'onglet code source et je peux lancer ma recherche
Set PlageDeRecherche = Sheets("code source").Columns(1) 'on définit la plage de recherche : onglet code source, colonne 1
attribut = "['id_attribute']='"
Set Trouve = PlageDeRecherche.Cells.Find(What:=attribut, LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlNext) 'On lance la recherche pour trouver la variable attribut_4_nicotine (enfin une partie seulement du texte)
If Trouve Is Nothing Then
MsgBox ("erreur")
End If
tablo = Trouve.Value
Sheets("tri").Activate
tablo = Split(tablo, attribut)
For h = 1 To UBound(tablo)
Cells(h + 1, 1) = tablo(h)
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''JUSQUE LA TOUT MARCHE''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'On a donc dans l'onglet tri les cellules colonne 1, ligne 2 à dernière lignes
'Je souhaite que la ligne 2 soit copié dans la colonne 6 sur l'onglet Feuil1 au niveau de la ligne J (de notre boucle)
'et que les lignes suivante soit inserer avec les données qui suivent
'par contre il faudrait (ou pas car vous aurez peut-être une autre idée) pouvoir faire le traitement ligne par ligne car je refait une mise en forme sur chaque ligne
'ci dessous le code qui me permet d'insérer dans la Feuil1 le nombre de ligne correspondant au nombre de ligne à copier.
'tout en copiant le contenu de la ligne d'origine
Dim m As Long
m = h - 2
L.Rows(j).Copy
L.Rows(j + 1).Resize(rowsize:=m).Insert Shift:=xlDown
'à partir de là je coince. Je pensais définir les cellule à copier dans une variable puis la collé en en (j,6) mais je réussi pas
Set Ma_Plage = T.Range("A2" & ":A" & h)
L.Cells(j, 6) = Ma_Plage
'ces lignes me servent à faire un traitement sur les ligne présente dans l'onglet tri pour récupérer la donnée voulu.
'place = InStr(Ma_Plage, ",")
' stock = Left(Cells(h, 1), place - 1)
Next j
MsgBox ("fini")
End Sub
Dernière édition: