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

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

Messages postés
195
Date d'inscription
mardi 22 février 2005
Statut
Membre
Dernière intervention
26 octobre 2009
1
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
Messages postés
10
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
6 juin 2005

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 ! :'(
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
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é
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
23
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