Supprimer valeurs colonne en conservant son contenu

bonjour,

Je viens de débuter en VBA

J'aimerai avoir une macro qui efface les valeurs d'une colonne tout en conservant sont contenu

Merci d'avance pour votre aide

Salut Zazabote

Je ne suis pas une pointure non plus mais bon ...

Si tu veux conserver les données de tes cellules, je peux te suggérer de faire une copie de tes cellules dans une autres partie de ta feuille ou sur une autre feuille ou encore dans une variable de type tableau.

Un exemple de macro commandée par un bouton de formulaire placé dans une feuille où les cellules A1, A2 et A3 sont déjà remplies, ça doit ressembler à ce que tu veux faire. La boite de message est juste là pour te montrer que l'enregistrement se fait bien dans le tableau.

Sub Macro1()

Dim Tableau(1 To 3)

For i = 1 To 3

Tableau(i) = Cells(i, 1)

Cells(i, 1) = ""

MsgBox ("Tableau(" & i & ")=" & Tableau(i))

Next i

End Sub

Salut Tiph 18,

Déjà merci pour ta réponse.

Cependant j'ai essayé ta macro, j'ai rempli 3 lignes qui sont A1 A2 et A3

Ensuite je tape le code que j'inséré dans un bouton, sauf que cette macro m'efface les données qui sont dans les cellules A1 A2 et A3 donc c'est ce que je souhaite mais le contenu de mes cellule est perdu

Salut Tiph 18,

Déjà merci pour ta réponse.

Cependant j'ai essayé ta macro, j'ai rempli 3 lignes qui sont A1 A2 et A3

Ensuite je tape le code que j'inséré dans un bouton, sauf que cette macro m'efface les données qui sont dans les cellules A1 A2 et A3 donc c'est ce que je souhaite mais le contenu de mes cellule est perdu

Zazabote

Non il n'est pas perdu, il est simplement contenu dans le tableau que j'ai nommé "Tableau". Tant que tu n'as pas quitté le fichier excel, ou écrasé le contenu de "Tableau", les données effacées sont toujours stockées et réutilisables. La preuve : j'ai juste rajouté l'avant-avant dernière ligne de code qui remplit les cellules C1, C2 et C3 grâce aux données de "Tableau".

Bon maintenant cela dépend de ce que tu veux faire de ces données conservées (en terme de temps).

Sub Macro1()

Dim Tableau(1 To 3)

For i = 1 To 3

Tableau(i) = Cells(i, 1)

Cells(i, 1) = ""

MsgBox ("Tableau(" & i & ")=" & Tableau(i))

Cells(i, 3) = Tableau(i)

Next i

End Sub

Ah effectivement je viens d'essayer et c'est impeccable ça fonctionne

Merci beaucoup pour ton aide

Cependant cette derniere ne recopie le contenue de mes cellule

Par exemple dans la cellule a1 il A1=1+2

Lorsque je lance la macro ça lefface bien les données de la cellule A1 et elle sont recopie dans une autre cellule mais sans le contenu c'est à dire que j'ai le résultat qui se trouvait en A1 mais je n'ai plus le contenu qui est =1+2

Veux tu dire que la cellule A1 contient la formule :

=1+2

Si oui il est normal que la macro n'enregistre que le résultat. Si le résultat ne t'intéresse pas il ne faut pas saisir le signe "=" avant l'addition 1+2

Oui voilà par exemple dans la cellule

A1 j'ai : =moyenne(B10:B11)

Au lancement de la macro ça me copie les données dans la cellule C1 mais uniquement le résultat et pas le formule

Mais si j'enlève le "=" comme tu dis dans ce cas ça ne devient plus une formule

Bon il faut revoir complètement la chose, il ne faut pas passer par une variable type tableau.

En fait ce que tu souhaite c'est l'équivalent d'un copier/collage spécial avec copie des formules. Essaie ça et place des formules dans A1, A2 et A3

Sub Macro1()

Range("A1:A3").Select

Selection.Copy

Range("C1:C3").Select

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

End Sub

Merci beaucoup

C'est exactement ce que je recherchais maintenant je vais l'améliorer a la façon

Encore merci !

Content de t'avoir aidé

Bon courage

Et j'aurais une derniere question

Car je voudrais appliquer ce code en y introduisant une boucle

C'est à dire que j'ai 12 mois dans l'année que j'ai placé en ligne

Le mois de janvier contient les formules et je voudrais dire à ma macro de copier les formules du mois m-1 vers le mois m+1

Mais si le mois m+1 a déjà des formules alors il ne copie rien


Merci beaucoup c'est exactement ce que je voulais

Maintenant ce que je souhaiterai c'edt introduire une boucle dans la macro

C'est à dire que dans mon fichier excel j'ai les 12 mois de l'année en ligne

Dans la colonne du mois de janvier figurer mes formules et j'aimerai une boucle qui cherche le mois m+1 donc en l'occurrence le mois de février et si il trouver février alors il colle les formules sinon il fait rien

Pas sûr que ce soit ton souhait mais quelque chose comme ça qui copie la formule de janvier sur mars etc... dans la colonne B

Sub Macro1()

For i = 2 To 11

Range("B" & i - 1).Select

Selection.Copy

Range("B" & i + 1).Select

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Next i

End Sub

J'ai commencé également à peu près de la même manière je te fais partager mon code une fois que ce dernier fonctionne correctement

Merci beaucoup !

Rechercher des sujets similaires à "supprimer valeurs colonne conservant contenu"