A voir également:
- [Excel]Passer une liste de ligne à colonne
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Aller à la ligne excel - Guide
- Formule somme excel colonne - Guide
- Trier colonne excel - Guide
8 réponses
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
31 août 2005 à 14:53
31 août 2005 à 14:53
;-)
Fais voir ta macro....
;-)
Fais voir ta macro....
;-)
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
31 août 2005 à 15:42
31 août 2005 à 15:42
;-)
Houlà !! Que de lignes ! ;-)
Pour limiter les lignes, pense aux boucles FOR, pour éviter les "Activate", pense aux variables objets...
;-)
Houlà !! Que de lignes ! ;-)
Pour limiter les lignes, pense aux boucles FOR, pour éviter les "Activate", pense aux variables objets...
;-)
k-lendos
Messages postés
3
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
1 septembre 2005
1 sept. 2005 à 11:39
1 sept. 2005 à 11:39
Voici la macro que j'ai faite :
Mais je n'arrive à faire pointer cellualire et celluledepart dans 2 feuilles différentes.
Merci pour votre aide.
Sub transpose() nbcol = 3 ' nombre de couples de données à lire ope/tps nbproduit = 4 ' nombre de produits celluledepart = "C19" ' cellule de départ du tableau à remplir cellulealire = "A2" ' cellule de départ des données à parcourir For prod = 0 To nbproduit For i = 0 To nbcol - 1 Range(celluledepart).Offset(i + (prod * nbcol), 0).Value = Range(cellulealire).Offset(0 + prod, 0).Value Range(celluledepart).Offset(i + (prod * nbcol), 1).Value = 10 + 10 * i Range(celluledepart).Offset(i + (prod * nbcol), 2).Value = Range(cellulealire).Offset(0 + prod, 2 + (5 * i)) Range(celluledepart).Offset(i + (prod * nbcol), 3).Value = Range(cellulealire).Offset(0 + prod, 4 + (5 * i)) Next i Next prod End Sub
Mais je n'arrive à faire pointer cellualire et celluledepart dans 2 feuilles différentes.
Merci pour votre aide.
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
1 sept. 2005 à 12:00
1 sept. 2005 à 12:00
;-) Bon, va là : http://domlevinfo.free.fr
Je vais te faire ça, tu comprendras mieux si c'est direct dans ton xls à toi et ça te feras un petit cours VBA...
;-)
Je vais te faire ça, tu comprendras mieux si c'est direct dans ton xls à toi et ça te feras un petit cours VBA...
;-)
G.David
Messages postés
768
Date d'inscription
vendredi 21 novembre 2003
Statut
Membre
Dernière intervention
1 juin 2020
203
>
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
25 mars 2006 à 00:07
25 mars 2006 à 00:07
Salut WhiteFang
le site que tu indique il est sur un serveur 56K en suisse ou c'est pour qu'on puisse faire un café qu'il est si lent ?2 minutes pleinne pour aller de l'accueil a la page traduction j'ai referme dare dare
Cordialement
G.David
le site que tu indique il est sur un serveur 56K en suisse ou c'est pour qu'on puisse faire un café qu'il est si lent ?2 minutes pleinne pour aller de l'accueil a la page traduction j'ai referme dare dare
Cordialement
G.David
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
>
G.David
Messages postés
768
Date d'inscription
vendredi 21 novembre 2003
Statut
Membre
Dernière intervention
1 juin 2020
25 mars 2006 à 08:30
25 mars 2006 à 08:30
;-) Je viens de faire le test... 20 secondes top chrono pour accéder, et la trad, c'est "Voilà" qui fait ça pour moi (pour dire que même en utilisant un service en ligne de trad, cela reste encore "acceptable")... Reste à te poser une question : C'est quoi ta machine ? ;-))))))))
G.David
Messages postés
768
Date d'inscription
vendredi 21 novembre 2003
Statut
Membre
Dernière intervention
1 juin 2020
203
>
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
25 mars 2006 à 18:41
25 mars 2006 à 18:41
Salut
1200ghz 512Mo Adsl 2Mo
si le probleme est la machine c'est que les pages sont plutot lourdes non?
sur CCM c'est instantané (moins de 20 secondes là je ne regarde pas ma montre) dommage ça m'interressais au filing et si j'ai bien interpreté ce qui etait en haut de la page j'etait le seul visiteur
Cordialement
G.David
1200ghz 512Mo Adsl 2Mo
si le probleme est la machine c'est que les pages sont plutot lourdes non?
sur CCM c'est instantané (moins de 20 secondes là je ne regarde pas ma montre) dommage ça m'interressais au filing et si j'ai bien interpreté ce qui etait en haut de la page j'etait le seul visiteur
Cordialement
G.David
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
>
G.David
Messages postés
768
Date d'inscription
vendredi 21 novembre 2003
Statut
Membre
Dernière intervention
1 juin 2020
25 mars 2006 à 20:03
25 mars 2006 à 20:03
Salut... Si les pages étaient lourdes, tu ne serais pas le seul à avoir ce genre de problème... Dans la mesure où 1 seul utilisateur à un problème alors que les autres n'en ont pas, on a tendance à penser que cela vient de sa machine... Non ? Maintenant, si ta machine va bien et que tu n'as ce genre de problème qu'en venant visiter cet espace, bon, je n'ai pas d'explication à ça... Je sais que l'hébergeur à eu un problème de serveur, mais bon, moi, avec mon petit P3 850Mhz, ça roule... Ou tu n'as vraiment pas de bol et tu tombes pile poil au moment où les serveurs cafouillent... Mais bon, je n'ai globalement pas d'explication rationnelle à te donner...
En attendant, pense bien à regarder ta barre d'état (du browser), pour voir QUI ou QUOI est long à charger...
Cordialement
En attendant, pense bien à regarder ta barre d'état (du browser), pour voir QUI ou QUOI est long à charger...
Cordialement
k-lendos
Messages postés
3
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
1 septembre 2005
1 sept. 2005 à 12:05
1 sept. 2005 à 12:05
Voici au final ma macro:
Merci à tous pour votre aide.
Sub transpose() nbcol = 12 ' nombre de couples de données à lire ope/tps nbproduit = 18 ' nombre de produits nomclasseur = "DUBILAODB1.xls" ' nom du classeur où se trouve les données nomfeuille = "Feuil1" ' nom de la feuille celluledepart = "C19" ' cellule de départ du tableau à remplir cellulealire = "A2" ' cellule de départ des données à parcourir For prod = 0 To nbproduit For i = 0 To nbcol - 1 Range(celluledepart).Offset(i + (prod * nbcol), 0).Value = Workbooks(nomclasseur).Worksheets(nomfeuille).Range(cellulealire).Offset(0 + prod, 0).Value Range(celluledepart).Offset(i + (prod * nbcol), 1).Value = 10 + 10 * i Range(celluledepart).Offset(i + (prod * nbcol), 2).Value = Workbooks(nomclasseur).Worksheets(nomfeuille).Range(cellulealire).Offset(0 + prod, 2 + (5 * i)) Range(celluledepart).Offset(i + (prod * nbcol), 3).Value = Workbooks(nomclasseur).Worksheets(nomfeuille).Range(cellulealire).Offset(0 + prod, 4 + (5 * i)) Next i Next prod End Sub
Merci à tous pour votre aide.
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
1 sept. 2005 à 12:23
1 sept. 2005 à 12:23
;-) Reste encore les variables objet à explorer, l'adressage en mode texte à passer en numérique, et ça commencera à le faire... Question écriture, j'entends, parce que si ça fonctionne, rien à dire ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 mars 2006 à 05:00
26 mars 2006 à 05:00
Bonsoir,
si tu as besoin de résultat et ce n'est pas la méthode qui compte, il y a d'autres façons à le faire. Par exemple avec un script Perl.
Enregistrer sous format txt (séparateur tabulation), un petit script, ensuite ouverture de fichier txt avec excel et voilà.
Script
#! /usr/bin/perl
use warnings;
use strict;
my %txt;
my $i = 0;
while(<DATA>){
my ($cle,$val)=split /t/,$_,2;
$txt{$cle} = [ /w+td+/g ];
}
for (keys %txt){
for my $l (@{$txt{$_}}){
$i += 10;
print "$_t$it$ln";
}
$i=0;
}
# après END sont les colonnes de ton classeur
# sauvegardé en format txt, séparateur tabulation
# execution : script > res_excel.txt
# ensuite ouvrir fichier txt avec excel
__END__
xxx FRA 10 USI 22 ABC 50 FRA 10 USI 22 ABC 50 FRA 10 USI 22 ABC 50 FRA 10 USI 22 ABC 50
YYY TOUR 10 ZAY 22 MAC 50 LEN 10 TOC 22 BIL 50 DOR 10 LUC 22 MIN 50 TOR 10 LES 22 MOC 50
Et le résultat (donc un fichier txt qui ouvert avec excel donne ce que tu veux obtenir)
[lamitest@localhost corbeille]$ perl ccm_excel.pl > ccm_excel_res.txt
[lamitest@localhost corbeille]$ cat ccm_excel_res.txt
xxx 10 FRA 10
xxx 20 USI 22
xxx 30 ABC 50
xxx 40 FRA 10
xxx 50 USI 22
xxx 60 ABC 50
xxx 70 FRA 10
xxx 80 USI 22
xxx 90 ABC 50
xxx 100 FRA 10
xxx 110 USI 22
xxx 120 ABC 50
YYY 10 TOUR 10
YYY 20 ZAY 22
YYY 30 MAC 50
YYY 40 LEN 10
YYY 50 TOC 22
YYY 60 BIL 50
YYY 70 DOR 10
YYY 80 LUC 22
YYY 90 MIN 50
YYY 100 TOR 10
YYY 110 LES 22
YYY 120 MOC 50
[lamitest@localhost corbeille
lami20j
si tu as besoin de résultat et ce n'est pas la méthode qui compte, il y a d'autres façons à le faire. Par exemple avec un script Perl.
Enregistrer sous format txt (séparateur tabulation), un petit script, ensuite ouverture de fichier txt avec excel et voilà.
Script
#! /usr/bin/perl
use warnings;
use strict;
my %txt;
my $i = 0;
while(<DATA>){
my ($cle,$val)=split /t/,$_,2;
$txt{$cle} = [ /w+td+/g ];
}
for (keys %txt){
for my $l (@{$txt{$_}}){
$i += 10;
print "$_t$it$ln";
}
$i=0;
}
# après END sont les colonnes de ton classeur
# sauvegardé en format txt, séparateur tabulation
# execution : script > res_excel.txt
# ensuite ouvrir fichier txt avec excel
__END__
xxx FRA 10 USI 22 ABC 50 FRA 10 USI 22 ABC 50 FRA 10 USI 22 ABC 50 FRA 10 USI 22 ABC 50
YYY TOUR 10 ZAY 22 MAC 50 LEN 10 TOC 22 BIL 50 DOR 10 LUC 22 MIN 50 TOR 10 LES 22 MOC 50
Et le résultat (donc un fichier txt qui ouvert avec excel donne ce que tu veux obtenir)
[lamitest@localhost corbeille]$ perl ccm_excel.pl > ccm_excel_res.txt
[lamitest@localhost corbeille]$ cat ccm_excel_res.txt
xxx 10 FRA 10
xxx 20 USI 22
xxx 30 ABC 50
xxx 40 FRA 10
xxx 50 USI 22
xxx 60 ABC 50
xxx 70 FRA 10
xxx 80 USI 22
xxx 90 ABC 50
xxx 100 FRA 10
xxx 110 USI 22
xxx 120 ABC 50
YYY 10 TOUR 10
YYY 20 ZAY 22
YYY 30 MAC 50
YYY 40 LEN 10
YYY 50 TOC 22
YYY 60 BIL 50
YYY 70 DOR 10
YYY 80 LUC 22
YYY 90 MIN 50
YYY 100 TOR 10
YYY 110 LES 22
YYY 120 MOC 50
[lamitest@localhost corbeille
lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 mars 2006 à 05:28
26 mars 2006 à 05:28
Dans le script il y a des erreurs à cause de non affichage des antislashes.
Le script correct https://www.cjoint.com/?dAfCzHTPth
Le script correct https://www.cjoint.com/?dAfCzHTPth
Coucou,
En regardant l'aide de excel :
"Transposer des lignes en colonnes ou des colonnes en lignes"
Pour que les données de la première ligne de la zone de copie s'affichent dans la colonne de gauche de la zone de collage, et que les données de la colonne de gauche s'affichent sur la première ligne, procédez comme suit :
Sélectionnez les cellules dont vous voulez inverser l'orientation.
Cliquez sur Copier .
Sélectionnez la cellule supérieure gauche de la zone de collage. Cette dernière doit être située à l'extérieur de la zone de copie.
Cliquez sur la flèche à droite du bouton Coller , puis cliquez sur Transposer.
Bon courage.
kéké, Administrateur de Magdales.
En regardant l'aide de excel :
"Transposer des lignes en colonnes ou des colonnes en lignes"
Pour que les données de la première ligne de la zone de copie s'affichent dans la colonne de gauche de la zone de collage, et que les données de la colonne de gauche s'affichent sur la première ligne, procédez comme suit :
Sélectionnez les cellules dont vous voulez inverser l'orientation.
Cliquez sur Copier .
Sélectionnez la cellule supérieure gauche de la zone de collage. Cette dernière doit être située à l'extérieur de la zone de copie.
Cliquez sur la flèche à droite du bouton Coller , puis cliquez sur Transposer.
Bon courage.
kéké, Administrateur de Magdales.
Bonjour,
Je n'aurai qu'un mot : MERCI keke !!!! :D
A chaque fois je rame pour retrouver la manière de faire, et là tout est si simple et limpide :)))
MERCI BEAUCOUP, ça va juste me simplifier énormément la vie.
Bravo pour avoir trouvé "transposé" je n'y avais jamais pensé.
Dungan
Je n'aurai qu'un mot : MERCI keke !!!! :D
A chaque fois je rame pour retrouver la manière de faire, et là tout est si simple et limpide :)))
MERCI BEAUCOUP, ça va juste me simplifier énormément la vie.
Bravo pour avoir trouvé "transposé" je n'y avais jamais pensé.
Dungan
31 août 2005 à 15:19
Selection.Copy
Windows("InterfaceGamme.xls").Activate
ActiveSheet.Paste
Range("B2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "10"
Range("B3").Select
ActiveCell.FormulaR1C1 = "20"
Range("B4").Select
ActiveCell.FormulaR1C1 = "30"
Range("B5").Select
ActiveCell.FormulaR1C1 = "40"
Range("B6").Select
ActiveCell.FormulaR1C1 = "50"
Range("B7").Select
ActiveCell.FormulaR1C1 = "60"
Range("B8").Select
ActiveCell.FormulaR1C1 = "70"
Range("B9").Select
ActiveCell.FormulaR1C1 = "80"
Range("B10").Select
ActiveCell.FormulaR1C1 = "90"
Range("B11").Select
ActiveCell.FormulaR1C1 = "10"
Range("B11").Select
ActiveCell.FormulaR1C1 = "100"
Range("B12").Select
ActiveCell.FormulaR1C1 = "110"
Range("B13").Select
ActiveCell.FormulaR1C1 = "120"
Range("D2").Select
Windows("DUBILAODB.xls").Activate
Range("C2").Select
Selection.Copy
Windows("InterfaceGamme.xls").Activate
ActiveSheet.Paste
Range("E2").Select
ActiveSheet.Paste
Range("G2").Select
Windows("DUBILAODB.xls").Activate
Range("E2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("InterfaceGamme.xls").Activate
Range("F2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("G2")
Range("G3").Select
Windows("DUBILAODB.xls").Activate
Range("H2").Select
Selection.Copy
Windows("InterfaceGamme.xls").Activate
Range("G3,D3").Select
Range("D3").Activate
ActiveSheet.Paste
Range("G3,D3,E3").Select
Range("E3").Activate
ActiveSheet.Paste
Range("G3").Select
Windows("DUBILAODB.xls").Activate
Range("J2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("InterfaceGamme.xls").Activate
ActiveSheet.Paste