finalisation d'une macro ou création d'une complémentaire xls 2007

micsel

XLDnaute Junior
Bonjour à tous (je sais il est presque 6h, mais je galère depuis un moment).. :)

Voila j'ai un fichier excel pour lequel je rempli presque une colonne sur 2 (celle en couleur dans le fichier joint), l'autre n'est qu'un copier vers le bas jusqu'à la délimitation que je lui donne (soit un x).
Pensez vous qu'il est possible d'automatiser ces recopies vers le bas ?
(le fichier est dans cette url car trop lours pour etre mis dans les fichiers joints)
Merci d'avance pour la lecture, et votre aide
 

bof

XLDnaute Occasionnel
Bonjour,
Hum...
Si j'ai bien compris la finalité ! Tu n'as peut-être pas besoin de cette gymnastique :
La macro :
VB:
Sub Mise_en_Texte()
Dim X&, DerL&, i%, S$
DerL = Feuil1.Range("A65536").End(xlUp).Row
Range("AI2:AI" & DerL).ClearContents
   For X = 2 To DerL
      S = Cells(1, 1)
      For i = 2 To 34
         If i And 1 = 0 Then
            S = S & Cells(X, i)
         Else
            S = S & Cells(1, i)
         End If
      Next
      Cells(X, 35) = S
   Next
End Sub
Le résultat pour AI2 :
A+
HTML.jpg
 

micsel

XLDnaute Junior
salut,
presque, mais dans le VB du coup il ne prend plus les textes que j'insere
Dans l'exemple du fichier lorsque tu rentres des valeurs dans la colonne "collection", "couleur", "marque" etc..
la macro renvoi toujours la ligne 1 :(
 

bof

XLDnaute Occasionnel
La macro modifiée :
VB:
Sub Mise_en_Texte()
Dim X&, DerL&, i%, S$
DerL = Feuil1.Range("A65536").End(xlUp).Row
Range("AI2:AI" & DerL).ClearContents
   For X = 2 To DerL
      For i = 1 To 33 Step 2
         S = S & Cells(1, i)
         S = S & Cells(X, i)
      Next
      Cells(X, 35) = S
   Next
End Sub

Autre possibilité probablement la meilleure :
VB:
Sub Mise_en_Texte()
Dim X&, DerL&, i%, S$
DerL = Feuil1.Range("A65536").End(xlUp).Row
Range("AI2:AI" & DerL).ClearContents
   For X = 2 To DerL
      For i = 1 To 34
         If Not i And 1 = 0 Then
            S = S & Cells(1, i)
            S = S & Cells(X, i)
         Else
            S = S & Cells(1, i)
         End If
      Next
      Cells(X, 35) = S
   Next
End Sub

C'est peut-être probablement pas encore tout à fait ça : mais si tu le donnais un vrai exemple en ligne 2 avec le résultat attendu en AI2 ça serait plus facile a comprendre...
En fait ce que je ne comprend pas c'est que tu dis :
"je rempli presque une colonne sur 2 (celle en couleur dans le fichier joint) "
et maintenant tu dis que tu rentres des valeurs dans les autres colonnes...

A+
 
Dernière édition:

micsel

XLDnaute Junior
Re Bof,
D'abord merci pour ton aide.
Cependant cela me sort cela en final :
doudou Disney Souris Rouge robe rouge a pois 23cms Minnie PantinDisneyPantinRougeMinnieSourisDisney
cela devrait sortir un truc de ce genre plutot :
html.png


Du coup je joins le fichier (sans vb) car comme cela il pese moins lourd.
Le but étant que toutes les colonnes "colorées" soient incrémenté automatiquement (jusqu'au "x"), les blanches sont celle que je remplis
Je précise également que le nombre de lignes varient (le nombre max doit etre à 1200 de mémoire)

voila un peu de précision
 

Pièces jointes

  • ex fichier.xlsx
    11.8 KB · Affichages: 4

bof

XLDnaute Occasionnel
Oui en fait c'est exactement le contraire de ce que tu disais en premier...
La macro suivante ne recopie pas les colonnes impaires, elles se borne à récupérer le résultat en colonne AI tout en récupérant les colonnes paires.
VB:
Sub Mise_en_Texte()
Dim iR&, DerL&, i%, S$
DerL = Feuil1.Range("A65536").End(xlUp).Row
Range("AI2:AI" & DerL).ClearContents
   For iR = 2 To DerL
      For i = 1 To 34
      If i And 1 Then
         S = S & Cells(1, i)
         Else
         S = S & Cells(iR, i)
        
         End If
      Next
      Cells(iR, 35) = S
   Next
End Sub
Si pas ça je serai de retour en fin d'après midi.
A+
 

bof

XLDnaute Occasionnel
C'est vrai que je n'ai pas eu le temps de bien vérifier, j'avais un RV à l'hopital...
Qu'est-ce qui ne marche pas ? Le contenu de la colonne AI n'est pas bon ?
Oui ce qui t'intéresse c'est la complétion des colonne paire ?
Je pense que comme ça ça va être bon :
VB:
Sub Mise_en_Texte()
Dim iR&, DerL&, i%, S$
DerL = Feuil1.Range("A65536").End(xlUp).Row
Range("AI2:AI" & DerL).ClearContents
   For iR = 2 To DerL
   S = ""
      For i = 1 To 34
      If i And 1 Then
         S = S & Cells(1, i)
         Else
         S = S & Cells(iR, i)
       
         End If
      Next
      Cells(iR, 35) = S
   Next
End Sub
Sauf si tu tiens absolument à la complétion des colonnes impaires..
A+
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
n'ayant pas d'exemple precis (au moins une ligne) je ne pourait t'en dire plus
cependant pour travailler le xml/html to excel et vice et versa depuis longtemps
je peux te dire qu'il te sera plus simple de manipuler une création d'arborescence en DOM

J'ATTEND une ligne concrète une !!!!!!!
d'ailleurs l'une des raison qui fait que le travailler en DOM EST MIEUX c'est que ca t'evite d'oublier de fermer des balises
et vu que tu l'oublie deja dans tes cellules d'entete ca risque pas de marcher correctement
voir par exemple les fermeture de "DIV" sans ouverture et idem pour les P

Capture.JPG


quand au 2d fichier que tu donne on est encore plus perdus
Capture.JPG
 
Dernière édition:

micsel

XLDnaute Junior
@bof : c'est nickel, ca fonctionne comme il faut :) grand merci, merci
j'espere que ce n'etait pas trop grave l'hopital.

@patricktoulon : en fait ces fichiers (j'en ai 2 different, mais sur les memes "bases", servent à la petite entreprise de mon épouse.
j'ai crée des champs de déscriptions auto en fonction de ces renseignements et pour le décomposer je me suis servi de Kompozer.
ces résultats sont copier après en vu d'etre integrer en csv (ca fait usine, mais j'ai pas trouver plus simple).
voila en gros le résultat de la feuille que m'a aidé de finir @bof

VB:
<html>
<head>
<meta content="" text="" html;="" charset="ISO-8859-1&quot;&quot;" http-equiv=""
content-type="">
<title></title>
</head>
<body>
<div class="" divtabs="" style="" padding:="" 20px;="" float:=""
left;="" width:="" 397.86px;="" color:="" rgb(51,="" 51,="" 51);=""
font-family:="" arial,helvetica,sans-serif;="" font-size:="" 16px;=""
font-style:="" font-weight:="" 400;="" letter-spacing:="" orphans:=""
text-align:="" start;="" text-indent:="" text-transform:="" none;=""
white-space:="" normal;="" widows:="" 2;="" word-spacing:="" 0px;=""
background-color:="" rgb(255,="" 255,="" 255);="">
<p font-size:="" 0.9em;="">Vous recherchez ce jolie <span style=""
font-style:="" italic;="">doudou Disney Mouchoir Violet Hug Me
porcinet Winnie l'ourson Plat</span> de la marque <span style=""
font-weight:="" bold;="">Disney</span>
. Il sera le compagnon idéal de bébé pour de doux câlins. Un joli <span
style="" text-decoration:="" underline;="">doudou</span> à offrir pour
accompagner votre enfant.</p>
<p style="" font-size:="" 0.9em;=""><bold style="" font-weight:=""
bold;="" margin-top:="" 10px;="" display:="" block;="">Caractéristiques
:</bold>Plat / Violet / Winnie l'ourson / Mouchoir</p>
</div>
<div class="" divtabs="" style="" padding:="" 20px;="" float:=""
left;="" width:="" 397.86px;="" color:="" rgb(51,="" 51,="" 51);=""
font-family:="" arial,helvetica,sans-serif;="" font-size:="" 16px;=""
font-style:="" font-weight:="" 400;="" letter-spacing:="" orphans:=""
text-align:="" start;="" text-indent:="" text-transform:="" none;=""
white-space:="" normal;="" widows:="" 2;="" word-spacing:="" 0px;=""
background-color:="" rgb(255,="" 255,="" 255);="">
<p style="" font-size:="" 0.9em;=""><bold style="" font-weight:=""
bold;="" margin-top:="" 10px;="">Marque :<span> </span></bold>Disney<br>
</p>
<p style="" font-size:="" 0.9em;=""><span style="" font-weight:=""
bold;="">Taille</span>
: </p>
<p style="" font-size:="" 0.9em;=""><bold style="" font-weight:=""
bold;="" margin-top:="" 10px;="">Réf. Fournisseur :<span> </span></bold></p>
</div>
"
</body>
</html>
 

patricktoulon

XLDnaute Barbatruc
perso pour moi c'est pire tu me perd dans tes explications
tu veux quoi?
excel to html ou html to excel

dans le cas de excel to html
les données de style tu les prend ou ?

dans le cas de html to excel tu veux garder quoi?

et entre parenthèse ton code html est loin d’être valide
tout tes doubles guillemets invalident le outertext des balises et par consequent prens tout comme innertexte
et je parle pas du reste car il y en a encore

<div class="" divtabs="" style="" padding:="" 20px;="" float:=""
left;="" width:="" 397.86px;="" color:="" rgb(51,="" 51,="" 51);=""
font-family:="" arial,helvetica,sans-serif;="" font-size:="" 16px;=""
font-style:="" font-weight:="" 400;="" letter-spacing:="" orphans:=""
text-align:="" start;="" text-indent:="" text-transform:="" none;=""
white-space:="" normal;="" widows:="" 2;="" word-spacing:="" 0px;=""
background-color:="" rgb(255,="" 255,="" 255);="">
<p font-size:="" 0.9em;="">Vous recherchez ce jolie <span style=""
font-style:="" italic;="">doudou Disney Mouchoir Violet Hug Me
porcinet Winnie l'ourson Plat</span> de la marque <span style=""
font-weight:="" bold;="">Disney</span>
. Il sera le compagnon idéal de bébé pour de doux câlins. Un joli <span
style="" text-decoration:="" underline;="">doudou</span> à offrir pour
accompagner votre enfant.</p>
<p style="" font-size:="" 0.9em;=""><bold style="" font-weight:=""
bold;="" margin-top:="" 10px;="" display:="" block;="">Caractéristiques
:</bold>Plat / Violet / Winnie l'ourson / Mouchoir</p>
</div>

pour info voila ce que donne ton code html dans l'explorateur
Capture.JPG
 

micsel

XLDnaute Junior
@patricktoulon

pour pouvoir le découper je me suis servi d'un gratuiciel "Kompozer"
ce logiciel, tu as 3 onglets : un conception standard / 1 second que je me sers pas / le 3eme qui prend le code source.
j'utilise donc le 3eme onglet que j'ai découpé selon mes besoin et copier dans une feuille excel (qui toutes references incluses doit contenir + 2000 lignes) et qui evoluera dans le temps.
une fois le classeur fait (grace a @bof) je copie le resultat dans un autre classeur qui est enregistré en .csv puis utf8 et a la fin ca donne une fiche produit comme ca : lien de démonstration
voili voila :)

En fait, sur ce cas la le résultat est résolu
le top serait de mettre ce résultat en auto, mais ca d'abord je creuse je fouille et après je viens :)

j'éspère avoir répondu à toutes tes questions
 

Discussions similaires