Remplir une colonne avec une macro EXcel (je débute ..)

voix_off Messages postés 10 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 6 juin 2005 - 23 mars 2005 à 09:55
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 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

Merci d'avance à tous !

4 réponses

DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
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 :-)

J'espère avoir répondu à tes attentes, bye bye
0
voix_off Messages postés 10 Date d'inscription mercredi 23 mars 2005 Statut Membre Derniè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 ! :'(
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
23 mars 2005 à 17:41
Salut,
Pour la création de colonnes hum !!!!! elles sont déja sur ta feuille
Voilà quelques bout de code tu peux tout coller et faire des essais

MsgBox "On rempli une colonne"


Sheets("Feuil1").Range("B1").EntireColumn.Value = "Customer1"
MsgBox "Maintenant on remplie la colonne de droite"


Sheets("Feuil1").Range("B1").EntireColumn.Offset(0, 1).Value = "Test1"


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


End Sub

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
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

jpleroisse
0
Rejoignez-nous