[vb] incrementation colonne excel
Fermé
mirounet
Messages postés
15
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
6 juillet 2007
-
8 juin 2007 à 15:13
Geneviève - 22 avril 2012 à 23:20
Geneviève - 22 avril 2012 à 23:20
A voir également:
- Excel incrementer colonne
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Trier colonne excel - Guide
- Liste déroulante excel - Guide
- Figer colonne excel - Guide
2 réponses
Alors j'ai fait vite fait une petite macro pour attibuer dans un fichier excel a une colone la valeur d'une ligne, par exemple on veut d'un coté sur la feuille 1:
toto
tata
tutu
a partir de la feuille 2 :
toto | tata | tutu
et biensur on veut que ca se fasse automatiquement ^^
voila mon exemple de macro pour une colonne :
[code]
'les variables sont : i et ii : entier, valeur numérique des lettres en code ascii (A = 65 Z = 91)
' j et jj : chaine de caractère, valeur en lettre de i et ii
' cpt numero de ligne dans le tableau, on commence dans cet exemple a la ligne 9
i = 65
cpt = 9
'on boucle une première fois pour les 26 premieres colones, car il n'y a ici qu'une lettre ^^
While j <> "Z"
j = Chr(i)
Cells(cpt, 4) = "'=Feuil2!" & j & "$10"
Cells(cpt, 4) = Right(Cells(cpt, 4), 12)
i = i + 1
cpt = cpt + 1
Wend
'on reinitialise les variables pour effectuer la deuxieme partie, une double boucle, car maintenant il y a 2 lettres: AA AB AC ......
i = 65
ii = 65
While cpt <> 265
ii = 65
While ii <> 91 And cpt <> 265
j = Chr(i)
jj = Chr(ii)
Cells(cpt, 4) = "'=Feuil2!" & j & jj & "$10"
Cells(cpt, 4) = Right(Cells(cpt, 4), 13)
ii = ii + 1
cpt = cpt + 1
Wend
i = i + 1
Wend
/code
j'utilise deux étapes pour déterminer la valeur des cellules, d'abord en mettant un guillemet devant, puis en l'enlevant, car quand je le faisais pas ca plantait je ne sais pas trop pourquoi, mais je ne suis pas sur que ca soit indispensable. ^^
Ce code n'est pas exactement la réponse a ta question mais il permet d'y répondre tout de même, vu qu'a l'intérieur j'incrémente les colonnes ;)
toto
tata
tutu
a partir de la feuille 2 :
toto | tata | tutu
et biensur on veut que ca se fasse automatiquement ^^
voila mon exemple de macro pour une colonne :
[code]
'les variables sont : i et ii : entier, valeur numérique des lettres en code ascii (A = 65 Z = 91)
' j et jj : chaine de caractère, valeur en lettre de i et ii
' cpt numero de ligne dans le tableau, on commence dans cet exemple a la ligne 9
i = 65
cpt = 9
'on boucle une première fois pour les 26 premieres colones, car il n'y a ici qu'une lettre ^^
While j <> "Z"
j = Chr(i)
Cells(cpt, 4) = "'=Feuil2!" & j & "$10"
Cells(cpt, 4) = Right(Cells(cpt, 4), 12)
i = i + 1
cpt = cpt + 1
Wend
'on reinitialise les variables pour effectuer la deuxieme partie, une double boucle, car maintenant il y a 2 lettres: AA AB AC ......
i = 65
ii = 65
While cpt <> 265
ii = 65
While ii <> 91 And cpt <> 265
j = Chr(i)
jj = Chr(ii)
Cells(cpt, 4) = "'=Feuil2!" & j & jj & "$10"
Cells(cpt, 4) = Right(Cells(cpt, 4), 13)
ii = ii + 1
cpt = cpt + 1
Wend
i = i + 1
Wend
/code
j'utilise deux étapes pour déterminer la valeur des cellules, d'abord en mettant un guillemet devant, puis en l'enlevant, car quand je le faisais pas ca plantait je ne sais pas trop pourquoi, mais je ne suis pas sur que ca soit indispensable. ^^
Ce code n'est pas exactement la réponse a ta question mais il permet d'y répondre tout de même, vu qu'a l'intérieur j'incrémente les colonnes ;)
.nono.
Messages postés
90
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007
17
8 juin 2007 à 15:52
8 juin 2007 à 15:52
Tu ne peux pas incrémenter la valeur d'une lettre. Si c'est incrémenter une lettre (A puis B puis C...), il faut utiliser l'Ascii.
Ex:
Pour une lettre, tu fait :
chr(j) = chr(j) + 1
Si j = A, j sera égal à B
Ex:
Pour une lettre, tu fait :
chr(j) = chr(j) + 1
Si j = A, j sera égal à B
22 avril 2012 à 23:20