Remplir une colonne avec une macro EXcel (je débute ..)
voix_off
Messages postés10Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention 6 juin 2005
-
23 mars 2005 à 09:55
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 2006
-
23 mars 2005 à 22:49
Bonjour, je débute sous VBA excel et je dois rendre un travail très rapidement ...
Ma macro doit -entre autres- créer 2 colonnes sur une feuille. Dans la premiere, toutes les cellules doivent etre remplies de la même manière, avec "Test". La seconde doit etre entierement remplie avec "Categorie".
Comment dois-je procéder ?
Question subsidiaire : où puis-je trouvers les bouts de code élémentaires pour :
-renommer une colonne
-ajouter une colonne
-supprimer une colonne
-dupliquer une ligne
DarkCid
Messages postés195Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention26 octobre 20091 23 mars 2005 à 10:34
Yaoh !
si tu veux remplir une colonne avec une valeur précise voilà :
dim cpt as integer
dim tontext as string
for cpt = 1 to (nombre de ligne ke tu ve remplir)
cells(cpt,numéro de la colonne).value = tontext
next
sinon, pour tes autres kestions, je ne connais pas le code par coeur mais tu peu faire une enregistrement macro pour le connaitre. tu vas dans outils/macro/nouvelle macro tu la nomme et tu fais en directe ce ke tu veu faire. tu vas ensuite sous vba et dans module t'auras ton code tt cho ki t'attendra :-)
voix_off
Messages postés10Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention 6 juin 2005 23 mars 2005 à 10:56
EUh oui c un bon début, cela dit :
je ne sais pas à combien de lignes ça doit s'appliquer, ça doit le faire sur toute la colonne, mais la macro doit s'appliquer si le tableau fait 20 ou 150 lignes ...
Quant aux macros enregistrées, j'ai essayé et ça déconne bcp, parce qu'apparemment, ça marche en "relatif" et pas en absolu : quand je supprime une colonne, puis une autre, il y a un décalage qui s'opère... je dois pas etre tres clair, mais en gros ça marche pas ! :'(
MsgBox "Maintenant on efface"
Sheets("Feuil1").Range("B1:B25").Value = ""
MsgBox "Maintenant on supprime la colonne B"
Sheets("Feuil1").Range("B1").EntireColumn.Delete
MsgBox "Maintenant on met des entêtes de colonnes"
Dim MyRange As Range, Element As Range, i As Integer
' Ici on détermine la plage pour MyRange
Set MyRange = Range("A1:E1")
i = 1
' Ici Utilisation de For Each qui parcours tout les cellules de MyRange
For Each Element In MyRange
Element.Value = "Element " & i
Element.Interior.Color = vbCyan
i = i + 1
Next
MsgBox "Maintenant on renome une colonne"
' On sélectionne la deuxième colonne de MyRange
' Avec utilisation de With
With MyRange
.Cells(, 2).Value = "Nouveau nom"
End With
MsgBox "Maintenant on efface tout dans MyRange"
MyRange.Clear
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 23 mars 2005 à 22:49
Essaie ce code, Place une valeur dans une cellule en A et un autre en B
par exemple , place 1 an A15 et 2 en B25 et lance la macro.
Si cela te conviens, utilise ton tableau pour placer des valeurs suivant le nbre de lignes que tu veux.
Sub Colonne()
Dim Cellule As Range
Set Cellule = Range([A1], [A65536].End(xlUp))
If TypeName(Selection) < "Range" Then Exit Sub
Application.ScreenUpdating = False
For Each Cellule In Range([A1], [A65536].End(xlUp))
If Cellule.Value = "" Then
Cellule.Value = "Text"
End If
Next Cellule
For Each Cellule In Range([B1], [B65536].End(xlUp))
If Cellule.Value = "" Then
Cellule.Value = "Categorie"
End If
Next Cellule
End Sub