Selections certaines lignes excels pour les copier et les coller dans un autre f

lisco Messages postés 54 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 28 septembre 2008 - 14 juil. 2008 à 16:49
lisco Messages postés 54 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 28 septembre 2008 - 20 juil. 2008 à 10:43
Bonjour, j'ai un probleme actuellement avec VB6, car je suis debutant. Alors mon projet c'est de faire un copier coller des lignes d'un fichier excel dans un autre fichier. Mon fichier excel est composé de plusieurs lignes et je dois regrouper certaines lignes qui representent les titres d'ouvrages dans un seul paragraphe afin dans un seul  colonne et ensuite les lignes comportant les noms d'auteurs dans un seul colonne et ainsi de suite.....

I need help please. ça fait des semaines je cherche mé je trouve pas, afin j'arrive pas à faire une boucle qui parcours toutes les lignes et recopie une ligne sur 2 ou 3.....etc
A vous de jouer svp

9 réponses

bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
14 juil. 2008 à 18:54
Bonjour,


pendant tes semaines de recherches intensives et désespérées, as tu déjà cherché


Excel Copier Ligne ??


 



http://www.vbfrance.com/recherche.aspx?r=Excel+Copier+ligne
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
14 juil. 2008 à 19:15
salut,

t'en es où là dans tes codes ?

Le principe de la boucle est simple, déjà faut rechercher la dernière ligne utilisée dans ta colonne (je pars du principe que tu as déjà déclaré tes objets Excel et Classeur)

    Dim DerLigne As Integer
DerLigne = xlBook.Sheets("nom feuille").Range("A65536").End(xlUp).Row   'A.. pour la colonne A, mais à changer au besoin

    Dim i as integer, iIncrementation as integer

iIncrementation = 1
For i = 1 to DerLigne
    If xlBook.Sheets("nom feuille").Range("A" & i).Value = "Tes noms d'auteurs" Then
       xlBook.Sheets("AUTRE feuille").Range("A" & iIncrementation).Value = xlBook.Sheets("nom feuille").Range("A" & i).Value
       iIncrementation = iIncrementation + 1
    End if
Next i

Voilà, tu as les grandes lignes
      
@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
lisco Messages postés 54 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 28 septembre 2008
15 juil. 2008 à 02:46
merci,mais le probleme est que pour les "noms d'auteurs ou titres" y en a plus de 300 noms d'auteurs differents mais on les trouve à la 3°ligne de chaque paragraphe du texte,de meme que les titres à la 2°ligne.La boucle devrait prendre a chaque fois la 3° puis 6° puis 9° .....ect ligne pour les mettre dans la colonne auteur.C'est la le plus grand probleme pour moi. Je vois pas comment le faire à ce niveau pour chacun a savoir titre , auteur , date de publication.

Encore merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 juil. 2008 à 11:00
re,

tu peux faire un truc du genre
For i = 3 to DerLigne Step 3

cela permet de passé de 3 à 6 puis 9 etc.. par pas de 3
@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lisco Messages postés 54 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 28 septembre 2008
15 juil. 2008 à 21:17
salut, je te reexplique et je te dis ma progression:
obExcelApp est le fichier qui contient deja le texte dans le desordre avec une ligne pour les auteurs une pour les titres une pour la date de publication et ainsi de suite.Et je dois les mettres par colonne c'est a dire dans la colonne de la cellule "A" que les titres et dans la colonne de la cellule "B" que les auteurs et ensuite "C" ......
Alors dans mon code j'ai fais une boucle du genre:

  If obExcelApp.Application.Visible = True  Then
      For i = 2 To 40216  Step 10
        obExcelApp.Rows("1" & i ).Select
        obExcelApp.Rows("1" & i ).Copy
obExcelInd.Sheets("Feuil1").Range("A" & iIncrementation).Value = obExcelApp.Sheets("Feuil0").Range("A" & i ).Value
     iIncrementation = iIncrementation + 1
     Next i
Pour remplir la colonne de la cellule "A" par mes titres et ça marche bien mais le probleme est que ça parcourt  que 1000 lignes et ça me dit que indice depassé, !!bizarre alors que j'ai 40216 lignes dans mon application Excel obExcelApp.
Et je poursuit mon code par ceci:

For j = 4 To 40216  Step 10

        obExcelApp.Rows("1" & j ).Select

        obExcelApp.Rows("1" & j ).Copy

obExcelInd.Sheets("Feuil1").Range("B" & jIncrementation).Value = obExcelApp.Sheets("Feuil0").Range("B" & i ).Value

     jIncrementation = jIncrementation + 1

     Next j

Mais il meremplit pas la colonne "B" , le reste ne marche pas nin pour "C" aussi

For k = 6 To 40216  Step 10

        obExcelApp.Rows("1" & k ).Select

        obExcelApp.Rows("1" & k ).Copy

obExcelInd.Sheets("Feuil1").Range("C" & kIncrementation).Value = obExcelApp.Sheets("Feuil0").Range("C" & k).Value

     kIncrementation = kIncrementation + 1

     Next k
0
lisco Messages postés 54 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 28 septembre 2008
16 juil. 2008 à 12:17
Merci , j'ai trouvé une solution il fallait mettre "A" partout dans la feuille "Feuil0" mais ya toujours un probleme car dans ma boucle for je peux pas depasser 10000, si je vais au dela il m'affiche un message d'erreurs :depassement de capacité, alors que le texte que je dois parcourir fait 48216 lignes!!

Une autre question svp , j'ai plein de
dans le texte et que je veux supprimer , avez -vous une idée ,j'ai essayer avec delete mais il parait que c'est pour supprimer des fichiers?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juil. 2008 à 14:53
re,

pas Dim i as integer en Dim i As Long pour ton dépassement de capacité.

Pour tes
, soit tu les remplaces en vb par vbCrLf (saut de ligne), soit par ... rien !
Cells.Replace "
", vbNullString

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juil. 2008 à 14:54
passe Dim i as integer en Dim i As Long pour ton dépassement de capacité.

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
lisco Messages postés 54 Date d'inscription lundi 14 juillet 2008 Statut Membre Dernière intervention 28 septembre 2008
20 juil. 2008 à 10:43
Bonjour, j'ai un probleme en vb6 alors dans mon projet :

J'avais un fichier html que j'ai converti en excel.J'ai reorganisé les
lignes de mon fichier html en excel, c'est a dire dans ma colonne A
j'ai mis mes titres d'ouvrages , dans la colonne B j'ai mis les noms
d'auteurs et dans la colonne C  ya un lien qui doit pointer sur le
disque dur ou sur le lecteur cd car j'ai pleins de fichiers .pdf sur un
cd sur lesquels doivent pointer ces liens qui me permettrons d'ouvrir
un fichier pdf en cliquant sur le lien . Mon probleme est que je sais
comment faire activer ces liens html  en VB6 car j'ai plus de 50000
fichiers pdf qui sont tous differents avec des noms differents bien
sur. Si  vous pouvez m'aidez svp!!!


Merçi d'avance.
0
Rejoignez-nous