[EXCEL] Infos colonne en ligne avec ;
Résolu/Fermé
pissdrunk
Messages postés
65
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
12 août 2009
-
11 août 2009 à 10:57
bol-2-riz - 13 nov. 2009 à 11:39
bol-2-riz - 13 nov. 2009 à 11:39
A voir également:
- [EXCEL] Infos colonne en ligne avec ;
- Déplacer une colonne excel - Guide
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Vente en ligne particulier - Guide
- Additionner colonne excel - Guide
12 réponses
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
11 août 2009 à 12:38
11 août 2009 à 12:38
Re,
Si vraiment le VBA te pose problème et que tu n'as rien contre 2-3 copier/coller, tu peux tjs utiliser ce fichier (je l'utilise pour construire des listes de valeurs pour des requêtes SQL par ex....dsl pour les couleurs, mais ça correspondait aux couleurs de mon ancienne boite lol) : http://www.cijoint.fr/cjlink.php?file=cj200908/cijYFK9N8T.xls
Si vraiment le VBA te pose problème et que tu n'as rien contre 2-3 copier/coller, tu peux tjs utiliser ce fichier (je l'utilise pour construire des listes de valeurs pour des requêtes SQL par ex....dsl pour les couleurs, mais ça correspondait aux couleurs de mon ancienne boite lol) : http://www.cijoint.fr/cjlink.php?file=cj200908/cijYFK9N8T.xls
Bonjour,
Dim i,j,a,valeur as string
i=1 ‘ ta première ligne ou se trouve ta valeur
j=1 ‘ ta première colonne ou se trouve ta valeur
a=0
cells(i,j).select
do while selection <> ""
if a <=100 then
a=a+1
if valeur = then
valeur = selection
else
valeur = valeur & ";" & selection
end if
a=a+1
else
cells(1,2).select
selection = valeur
a=0
valeur =""
end if
i=i+1
cells(i,j).select
loop
Un conseil fais le par F8 et regarde si ca te convient.
Dim i,j,a,valeur as string
i=1 ‘ ta première ligne ou se trouve ta valeur
j=1 ‘ ta première colonne ou se trouve ta valeur
a=0
cells(i,j).select
do while selection <> ""
if a <=100 then
a=a+1
if valeur = then
valeur = selection
else
valeur = valeur & ";" & selection
end if
a=a+1
else
cells(1,2).select
selection = valeur
a=0
valeur =""
end if
i=i+1
cells(i,j).select
loop
Un conseil fais le par F8 et regarde si ca te convient.
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
11 août 2009 à 11:36
11 août 2009 à 11:36
Voilà une autre solution...
j'ai été moins rapide à la créer mais je te la met quand même...
Dim Ligne As String
Sub CompilLigne()
Ligne = ""
For i = 1 To 100
If Sheets(1).Cells(i, 1) <> "" Then
Ligne = Ligne & ";" & Sheets(1).Cells(i, 1)
End If
Next i
Sheets(2).Cells(1, 1) = Ligne
Ligne = ""
For i = 101 To 200
If Sheets(1).Cells(i, 1) <> "" Then
Ligne = Ligne & ";" & Sheets(1).Cells(i, 1)
End If
Next i
Sheets(2).Cells(1, 2) = Ligne
Ligne = ""
For i = 201 To 300
If Sheets(1).Cells(i, 1) <> "" Then
Ligne = Ligne & ";" & Sheets(1).Cells(i, 1)
End If
Next i
Sheets(2).Cells(1, 3) = Ligne
'... tu peux répéter autant de fois ce modèle que tu as de multiple de 100 cellules
end sub
j'ai été moins rapide à la créer mais je te la met quand même...
Dim Ligne As String
Sub CompilLigne()
Ligne = ""
For i = 1 To 100
If Sheets(1).Cells(i, 1) <> "" Then
Ligne = Ligne & ";" & Sheets(1).Cells(i, 1)
End If
Next i
Sheets(2).Cells(1, 1) = Ligne
Ligne = ""
For i = 101 To 200
If Sheets(1).Cells(i, 1) <> "" Then
Ligne = Ligne & ";" & Sheets(1).Cells(i, 1)
End If
Next i
Sheets(2).Cells(1, 2) = Ligne
Ligne = ""
For i = 201 To 300
If Sheets(1).Cells(i, 1) <> "" Then
Ligne = Ligne & ";" & Sheets(1).Cells(i, 1)
End If
Next i
Sheets(2).Cells(1, 3) = Ligne
'... tu peux répéter autant de fois ce modèle que tu as de multiple de 100 cellules
end sub
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
11 août 2009 à 13:25
11 août 2009 à 13:25
Oki, alors regarde le fichier que j'ai posé sur cijoint.fr, ça devrait t'être utile ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
11 août 2009 à 15:54
11 août 2009 à 15:54
J'ai limité à 400 pr des questions de perf mais tu peux adapter ;)
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
11 août 2009 à 16:04
11 août 2009 à 16:04
essaye qqchose comme ça:
Dim ligne as string
Sub...()
for j =1 to 65
Ligne = ""
for i = ((j-1)*100)+1 to j*100
if sheets(1).cells((i,1)<>"" then
Ligne=Ligne&";"&Sheets(1).Cells(i,1)
end if
next i
Sheets(2).cells(j,1)=Ligne
Next j
end sub
Avec ça tu devrais pouvoir faire jusqu'à 65 listes de 100 identifiants
Dim ligne as string
Sub...()
for j =1 to 65
Ligne = ""
for i = ((j-1)*100)+1 to j*100
if sheets(1).cells((i,1)<>"" then
Ligne=Ligne&";"&Sheets(1).Cells(i,1)
end if
next i
Sheets(2).cells(j,1)=Ligne
Next j
end sub
Avec ça tu devrais pouvoir faire jusqu'à 65 listes de 100 identifiants
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
11 août 2009 à 16:05
11 août 2009 à 16:05
Normalement ta liste de valeurs est à coller en B5:B405, les parametres en F4:F6 et le résultat en F2.....
Si le résultat s'affiche pas essaie de modifier la couleur du texte, c'est peut etre un pb de conversion de couleurs (fichier réalisé en Excel 2007)....
Si le résultat s'affiche pas essaie de modifier la couleur du texte, c'est peut etre un pb de conversion de couleurs (fichier réalisé en Excel 2007)....
pissdrunk
Messages postés
65
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
12 août 2009
22
11 août 2009 à 11:24
11 août 2009 à 11:24
Bonjour Mélanie et merci pour ce retour rapide !
Je ne m'y connais pas énormément en VBA...
J'ai donc ajouté un module et copié le code que tu m'as indiqué.
Faut-il auparant ajouter une ligne de type "Sub Ligne()" au début et "End Sub" à la fin ?
De plus dans le code que tu m'a donné à un moment il y a If valeur = Then faut-il mettre une valeur avant le "then" ?
Je suis embetant je sais ... :)
D'avance merci pour le coup de main !
Je ne m'y connais pas énormément en VBA...
J'ai donc ajouté un module et copié le code que tu m'as indiqué.
Faut-il auparant ajouter une ligne de type "Sub Ligne()" au début et "End Sub" à la fin ?
De plus dans le code que tu m'a donné à un moment il y a If valeur = Then faut-il mettre une valeur avant le "then" ?
Je suis embetant je sais ... :)
D'avance merci pour le coup de main !
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
11 août 2009 à 11:41
11 août 2009 à 11:41
Bonjour,
Si tu ne connais pas VBA et que tu n'as que 245 lignes, pourquoi ne pas simplement utiliser un copier/collage spécial ? Tu sélectionne tes 100 premieres cellules, ensuite tu les copie (CTRL+C ou click droit/copier), ensuite un clique droit sur ta cellule de destination/collage spécial et tu coches "Transposé".
Si tu ne connais pas VBA et que tu n'as que 245 lignes, pourquoi ne pas simplement utiliser un copier/collage spécial ? Tu sélectionne tes 100 premieres cellules, ensuite tu les copie (CTRL+C ou click droit/copier), ensuite un clique droit sur ta cellule de destination/collage spécial et tu coches "Transposé".
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
>
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
11 août 2009 à 11:45
11 août 2009 à 11:45
Je crois que son but est de copier les 100 cellules de sa colonne dans une seule, toutes séparé par ";"... transposé ne permet que de copier ses 100 cellules en ligne...
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
>
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
11 août 2009 à 11:52
11 août 2009 à 11:52
Oki, autant pr moi alors j'ai lu trop vite ! J'aimerai bien comprendre la finalité qd même, c une drôle de manip' (et puis si c'est pour générer un .csv, ça tient tjs la route avec le transposé...)
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
>
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
11 août 2009 à 11:57
11 août 2009 à 11:57
Oui tu as raison il serait intéressant de connaître le but de tout ça...
pissdrunk
Messages postés
65
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
12 août 2009
22
11 août 2009 à 13:24
11 août 2009 à 13:24
Hello et merci d'être autant à me répondre !
Alors pour tout vous dire je travaille sous Business Objects sur des identifiants que l'on m'adresse sous Excel (j'ai pris 245 lignes dans mon exemple mais ca peut très bien être 950 lignes...voir plus) or dans Businiess Objets, lorsque que je veux travailler sur ces identifiants je ne peux pas en mettre plus de 100 dans une même ligne.
Exemple: chaque marque de voiture a un identifiant (123 pour renault, 456 pour peugeot, 789 pour citroën)
Je vais devoir remonter pour renault et peugeot le nombre de voiture en circulation, donc dans BO il va falloir que dans les critères de la requête je fasse la chose suivante:
Identifiant_voiture DANS LISTE (123;456) et chaque identifiant doit être séparé par un ";"
La il y a que deux identifiants mais je peux avoir à en mettre plusieurs centaines or par ligne dans BO il n'en accepte que 100...c'est pour que je puisse faire des copier coller rapidement des identifiants par liste de 100...
Je sais c'est pas évident à expliquer sur le net comme ça...si je ne suis pas clair n'hésitez pas à me revenir !
Merci encore!
Alors pour tout vous dire je travaille sous Business Objects sur des identifiants que l'on m'adresse sous Excel (j'ai pris 245 lignes dans mon exemple mais ca peut très bien être 950 lignes...voir plus) or dans Businiess Objets, lorsque que je veux travailler sur ces identifiants je ne peux pas en mettre plus de 100 dans une même ligne.
Exemple: chaque marque de voiture a un identifiant (123 pour renault, 456 pour peugeot, 789 pour citroën)
Je vais devoir remonter pour renault et peugeot le nombre de voiture en circulation, donc dans BO il va falloir que dans les critères de la requête je fasse la chose suivante:
Identifiant_voiture DANS LISTE (123;456) et chaque identifiant doit être séparé par un ";"
La il y a que deux identifiants mais je peux avoir à en mettre plusieurs centaines or par ligne dans BO il n'en accepte que 100...c'est pour que je puisse faire des copier coller rapidement des identifiants par liste de 100...
Je sais c'est pas évident à expliquer sur le net comme ça...si je ne suis pas clair n'hésitez pas à me revenir !
Merci encore!
pissdrunk
Messages postés
65
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
12 août 2009
22
11 août 2009 à 15:51
11 août 2009 à 15:51
Effectivement ton fichier peut m'être utile dans le cas ou j'ai moins de 100 identifiants...après ca se complique...
pissdrunk
Messages postés
65
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
12 août 2009
22
11 août 2009 à 15:55
11 août 2009 à 15:55
Par contre effectivement on voit pas le résultat du coup je copie colle la cellule I204 (je crois que c'est celle la) et j'ai l'info, merci pour ton aide en tout cas.
pissdrunk
Messages postés
65
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
12 août 2009
22
12 août 2009 à 15:26
12 août 2009 à 15:26
Merci à tous, en prenant les idées à droite à gauche de vos aides je suis parvenu à bout ! et il y a une grosse utilité derrière, un grand merci à tous encore une fois !
Cdt,
Jean
Cdt,
Jean
Bonjour Pissdrunk,
Désolé de reveiller un vieux topic mais étant moi même en train de faire du requêtage sous BO XI depuis pas longtemps, j'ai besoin de ton aide.
Je dois requeter à partir de fichiers .csv qui peuvent aller a beaucoup plus que 400 entrées, l'idée étant de faire une requête de 1000/2000 numéros et de la laisser tourner autant de temps que necessaire.
J'ai requêté pour une liste de 147 éléments et il n'y a eu aucun message d'erreur, je récupère bien les donnèes. Que voulais tu dire par "business object est limité a 100 entrées"?
Ce serait sympa de m'envoyer ta méthode.
Cordialement,
quentin
Désolé de reveiller un vieux topic mais étant moi même en train de faire du requêtage sous BO XI depuis pas longtemps, j'ai besoin de ton aide.
Je dois requeter à partir de fichiers .csv qui peuvent aller a beaucoup plus que 400 entrées, l'idée étant de faire une requête de 1000/2000 numéros et de la laisser tourner autant de temps que necessaire.
J'ai requêté pour une liste de 147 éléments et il n'y a eu aucun message d'erreur, je récupère bien les donnèes. Que voulais tu dire par "business object est limité a 100 entrées"?
Ce serait sympa de m'envoyer ta méthode.
Cordialement,
quentin