[EXCEL] Colonne suivante...
Hugar
-
hugar -
hugar -
Bonjour à tous,
voilà, je suis en train de progammer un tableau sur Excel 2010, et je suis confronté à un problème... Je suis en train de créer un outil qui donne plusieurs valeurs en fonction de critères à sélectionner ; et je dois créer un bouton qui enregistre les données actuellement affichées dans une liste sur sur autre feuille (pour les archiver et les comparer). J'ai donc créé un bouton qui appelle une macro qui se charge de faire les copier/collage spéciale (valeur seule), donc tout marche bien, sauf....
Sauf que j'aimerais qu'à chaque appuie du bouton, excel enregistre les nouvelles valeurs dans la colonne suivante (histoire de pas écraser les valeurs à chaque fois !!)
Donc voici un extrait de la macro (c'est toujours la même chose) :
L'idée serait de remplacer sur la sheet "List" les "C1", "C2", etc. par "D1", "D2"... puis "E1", "E2", etc....
J'ai essayer plusieurs solutions d'internet mais rien n'a marché, et vu que je ne comprends rien au VBA (et puis j'ai pas trop le temps d'apprendre, c'est pour le boulot là ^^)...
Merci beaucoup de votre aide en tout cas !
Hug.
voilà, je suis en train de progammer un tableau sur Excel 2010, et je suis confronté à un problème... Je suis en train de créer un outil qui donne plusieurs valeurs en fonction de critères à sélectionner ; et je dois créer un bouton qui enregistre les données actuellement affichées dans une liste sur sur autre feuille (pour les archiver et les comparer). J'ai donc créé un bouton qui appelle une macro qui se charge de faire les copier/collage spéciale (valeur seule), donc tout marche bien, sauf....
Sauf que j'aimerais qu'à chaque appuie du bouton, excel enregistre les nouvelles valeurs dans la colonne suivante (histoire de pas écraser les valeurs à chaque fois !!)
Donc voici un extrait de la macro (c'est toujours la même chose) :
Range("C1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("C2").Select
Sheets("daten").Select
Range("B23").Select
Selection.Copy
Sheets("List").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C3").Select
Sheets("daten").Select
Range("C23").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("List").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C4").Select
L'idée serait de remplacer sur la sheet "List" les "C1", "C2", etc. par "D1", "D2"... puis "E1", "E2", etc....
J'ai essayer plusieurs solutions d'internet mais rien n'a marché, et vu que je ne comprends rien au VBA (et puis j'ai pas trop le temps d'apprendre, c'est pour le boulot là ^^)...
Merci beaucoup de votre aide en tout cas !
Hug.
A voir également:
- [EXCEL] Colonne suivante...
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule somme excel colonne - Guide
4 réponses
Bonjour,
Ça devrait ressembler à cela :
bien entendu, ne voyant pas les données, je ne connais
pas le nombre de colonne à traiter ?
For Boucle = 2 To 50
De la colonne 2 (B) à la colonne 50 (AX).
Cdt
Lupin
Ça devrait ressembler à cela :
Option Explicit
Sub Test()
Dim Boucle As Long
Sheets("List").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("C2").Select
For Boucle = 2 To 50
Sheets("daten").Select
Cells(Boucle, 23).Select
Selection.Copy
Sheets("List").Select
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Select
Next Boucle
End Sub
'
bien entendu, ne voyant pas les données, je ne connais
pas le nombre de colonne à traiter ?
For Boucle = 2 To 50
De la colonne 2 (B) à la colonne 50 (AX).
Cdt
Lupin
Merci beaucoup pour votre réponse.
Alors, j'ai essayé votre solution (en adaptant, car c'est dans la feuille "List" que je veux changer de colonne à chaque fois !), résultat :
- La liste s'écrit bien, mais en ligne et non en colonne (une colonne = un archivage des données, puis quand on clique à nouveau sur le bouton, et refait un archivage sur la colonne de droite, etc.. Et non sur la ligne, puis la ligne de dessous.) Au pire, je peux inverser et présenter ma liste par ligne...
- La macro tourne.... 50 fois ! Elle ne s'arrête pas à la fin de l'écriture d'une colonne (enfin, ici en l'occurence : d'une ligne). 'Donc ca écrit 50 fois la même ligne :s
Merci beaucoup de votre aide, on va y arriver !
Alors, j'ai essayé votre solution (en adaptant, car c'est dans la feuille "List" que je veux changer de colonne à chaque fois !), résultat :
- La liste s'écrit bien, mais en ligne et non en colonne (une colonne = un archivage des données, puis quand on clique à nouveau sur le bouton, et refait un archivage sur la colonne de droite, etc.. Et non sur la ligne, puis la ligne de dessous.) Au pire, je peux inverser et présenter ma liste par ligne...
- La macro tourne.... 50 fois ! Elle ne s'arrête pas à la fin de l'écriture d'une colonne (enfin, ici en l'occurence : d'une ligne). 'Donc ca écrit 50 fois la même ligne :s
Merci beaucoup de votre aide, on va y arriver !
re:
désolé je me suis trompé, il faut juste inverser lignes et colonnes
dans l'instruction suivante :
Cells(Boucle, 23).Select
devient :
Cells(23, Boucle).Select
donc on obtient :
<code>
Sub Test()
Dim Boucle As Long
Sheets("List").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("C2").Select
For Boucle = 2 To 50
Sheets("daten").Select
Cells(23, Boucle).Select
Selection.Copy
Sheets("List").Select
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Select
Next Boucle
End Sub
'
<code>
deuxième point, jusqu'où doit tu effectuer la manip ?
Je cite :
L'idée serait de remplacer sur la sheet "List" les "C1", "C2", etc. par "D1", "D2"... puis "E1", "E2", etc....
le mot [etc...] signifie quoi exactement ?
En C1, tu inscris la date de maintenant (la formule),
en C2, tu commence la copie,
veux-tu toujours inscrire la date du jour sur la ligne 1
de chaque colonne, et renvoyé la copie sur la ligne 2
en décalant d'une colonne à chaque fois ?
Je ne saisis pas bien cette partie, c'est pourquoi j'ai fait
boucler de 2 à 50, mais cela n'a pas l'air d'être ce que tu
souhaite !
Cdt
Lupin
désolé je me suis trompé, il faut juste inverser lignes et colonnes
dans l'instruction suivante :
Cells(Boucle, 23).Select
devient :
Cells(23, Boucle).Select
donc on obtient :
<code>
Sub Test()
Dim Boucle As Long
Sheets("List").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("C2").Select
For Boucle = 2 To 50
Sheets("daten").Select
Cells(23, Boucle).Select
Selection.Copy
Sheets("List").Select
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Select
Next Boucle
End Sub
'
<code>
deuxième point, jusqu'où doit tu effectuer la manip ?
Je cite :
L'idée serait de remplacer sur la sheet "List" les "C1", "C2", etc. par "D1", "D2"... puis "E1", "E2", etc....
le mot [etc...] signifie quoi exactement ?
En C1, tu inscris la date de maintenant (la formule),
en C2, tu commence la copie,
veux-tu toujours inscrire la date du jour sur la ligne 1
de chaque colonne, et renvoyé la copie sur la ligne 2
en décalant d'une colonne à chaque fois ?
Je ne saisis pas bien cette partie, c'est pourquoi j'ai fait
boucler de 2 à 50, mais cela n'a pas l'air d'être ce que tu
souhaite !
Cdt
Lupin
Bonjour,
merci beaucoup,
en adaptant vos codes, j'ai réussi à obtenir ce que je voulais ! J'ai même pu mettre en place un système de suppression de colonne qui fait revenir à la colonne précédente pour écrire (et ne laisse donc pas de blancs)...
Maintenant je dois trouver un système pour commander une impression en sélectionnant l'année d'archivage des données, mais ça... c'est une autre histoire....!
merci beaucoup,
en adaptant vos codes, j'ai réussi à obtenir ce que je voulais ! J'ai même pu mettre en place un système de suppression de colonne qui fait revenir à la colonne précédente pour écrire (et ne laisse donc pas de blancs)...
Maintenant je dois trouver un système pour commander une impression en sélectionnant l'année d'archivage des données, mais ça... c'est une autre histoire....!