VBA EXCEL copier jusqu'a la fin du fichier

Résolu/Fermé
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 - 30 juin 2009 à 15:04
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 - 2 juil. 2009 à 10:40
Bonjour, je repost içi je pense que c'est plus approprier :-)
J'ai un petit souci avec EXCEL, je voudrai automatiser des actions avant la fermeture (beforeclose) car mes utilisateurs ne sont pas trés pousser niveau informatique donc faut les aider au maximum...Donc il faut que sa copie le contenu de 4 colonnes jusqu'à la fin de la feuille. J'ai trois colonnes de formules et une de date si on pouvait même faire une textbox qui demanderai la date et qui la copierai jusqu'à la fin sa sera cool mais ce n'est pas le principal. Donc voila je demande votre aide et je vous remercis d'avance.
A voir également:

60 réponses

Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 10:51
>< oops j'ai donc mis le chiffre, rajouter l'heure mais j'ai toutjours un erreur de compilation sur la ligne

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim letemps As Time
letemps = Time ' heure du système.
Dim ladate As Date
ladate = Format(InputBox("Donner la date et l'heure SVP...", "Saisie de la date", Date), "dd/mm/yyyy")

Range("X1").Select
Selection.End(xlDown).Select 'dernière ligne pleine
ActiveCell.Offset(1, 0).Select ' ligne suivante ou première ligne vide
' il ne doit pas y avoir de "vide dans les dates"
ladate = ladate & "_" & letemps
ActiveCell.Value = ladate

introw = 1

Do Until ActiveSheet.Cells(1, introw) <> ""

ActiveSheet.Cells(23, introw) = "RECHERCHEV(D2;'Commune CAD PDL'!A:B;2;FAUX)"
ActiveSheet.Cells(24, introw) = ActiveSheet.Cells(24, introw - 1)
ActiveSheet.Cells(25, introw) = "=RECHERCHEV(W2;'Communes BEX'!$A$2:$C$601;3;FAUX)"
ActiveSheet.Cells(34, introw) = "=SI(NBCAR(F2)<8;"Non Référencé";SI(DROITE(F2;6)="000000";"Non Référencé";F2))"

introw = introw + 1
Loop

End Sub
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 10:53
J'en déduis que c'est sur la ligne suivante:
ActiveSheet.Cells(34, introw) = "=SI(NBCAR(F2)<8;"Non Référencé";SI(DROITE(F2;6)="000000";"Non Référencé";F2))"

Que tu as une erreur?
C'est quoi l'erreur?
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 10:58
Erreur compilation
expression attendue
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 10:59
Essaye en remplacant ta forume par:
"test"

voir si ca viens de ta formule ^^
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:03
Donc sa vient bien de la formule et mais en recompilant une autre apparait sur la ligne Dim letemps As Time avec type définie par l'utili.. non définie :-/
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:04
Tu peux la virer cette ligne, comme celle ou tu définis ta variable date!
Y'en a pas besoin ;)
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:06
YEAHHHH sa fonctionne!!!!...presque:-( . Sa fonctionne juste pour la date. Les 3 formules ne sont pas copier..
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:07
Essaye ca:

Activesheet.Cells().value=...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:11
Euh..je le met ou? Sur la boucle ou avant? Normalement la boucle devrait commencer ?
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:16
Non tu remplaces la syntaxe de la ligne ou tu doit mettre les résultat par cette syntaxe
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:25
OULA toutes les cellules sont remplies avec la date et l'heure quand je dit toutes c'est toutes 65355 et quelque lignes, toutes les colonnes...
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:32
loool
Remet tous le code.
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:35
J'avoue j'ai sourie et j'étais content lorsque le traitement à commencer , mais j'ai vite déchanté ^^

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


letemps = Time ' heure du système.

ladate = Format(InputBox("Donner la date et l'heure SVP...", "Saisie de la date", Date), "dd/mm/yyyy")

Range("X1").Select
Selection.End(xlDown).Select 'dernière ligne pleine
ActiveCell.Offset(1, 0).Select ' ligne suivante ou première ligne vide
' il ne doit pas y avoir de "vide dans les dates"
ladate = ladate & "_" & letemps
ActiveCell.Value = ladate

introw = 1

Do Until ActiveSheet.Cells(1, introw) <> ""

ActiveSheet.Cells(23, introw) = "RECHERCHEV(D2;'Commune CAD PDL'!A:B;2;FAUX)"
ActiveSheet.Cells(24, introw) = ActiveSheet.Cells(24, introw - 1)
ActiveSheet.Cells(25, introw) = "=RECHERCHEV(W2;'Communes BEX'!$A$2:$C$601;3;FAUX)"
ActiveSheet.Cells(34, introw) = "test"

introw = introw + 1
Loop

End Sub
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:39
Essaye ce code:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


letemps = Time ' heure du système.

ladate = Format(InputBox("Donner la date et l'heure SVP...", "Saisie de la date", Date), "dd/mm/yyyy")

ladate = ladate & "_" & letemps

introw = 1

Do Until ActiveSheet.Cells(1, introw) <> ""

ActiveSheet.Cells(23, introw) = "RECHERCHEV(D2;'Commune CAD PDL'!A:B;2;FAUX)"
ActiveSheet.Cells(24, introw) = ActiveSheet.Cells(24, introw - 1)
ActiveSheet.Cells(25, introw) = "=RECHERCHEV(W2;'Communes BEX'!$A$2:$C$601;3;FAUX)"
ActiveSheet.Cells(34, introw) = "test"

introw = introw + 1
Loop

End Sub
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:43
Rien ne se passe...
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:44
Essaye ce code:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


letemps = Time ' heure du système.

ladate = Format(InputBox("Donner la date et l'heure SVP...", "Saisie de la date", Date), "dd/mm/yyyy")

ladate = ladate & "_" & letemps

introw = 1

Do Until ActiveSheet.Cells(1, introw) <> ""

ActiveSheet.Cells(23, introw).value = "RECHERCHEV(D2;'Commune CAD PDL'!A:B;2;FAUX)"
ActiveSheet.Cells(24, introw).value = ActiveSheet.Cells(24, introw - 1)
ActiveSheet.Cells(25, introw).value = "=RECHERCHEV(W2;'Communes BEX'!$A$2:$C$601;3;FAUX)"
ActiveSheet.Cells(34, introw).value = "test"

introw = introw + 1
Loop

End Sub
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:47
Même chose
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:47
Deroule le en pas par pas pour voir ce qu'il fait
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:50
Il y a la Box qui s'affiche puis un petit coup de sablier et pis c'est tout. Je vois pas comment exécuter en pas à pas.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
1 juil. 2009 à 11:51
click dans la macro puis f8
tu verras la ligne surlignée en jaune avant d'être executé.
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 11:53
Il faudrai que je sauvegarde ma macro dans se cas. Comment faire je n'arrive pas à sauvegarder de macro dans le Workbook.
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:56
Je suis con xD
Comme ca ca marche:

Private Sub macro()


letemps = Time ' heure du système.

ladate = Format(InputBox("Donner la date et l'heure SVP...", "Saisie de la date", Date), "dd/mm/yyyy")

ladate = ladate & "_" & letemps

introw = 1


Do Until ActiveSheet.Cells(introw, 1).Value = ""

ActiveSheet.Cells(introw, 23) = "test"
ActiveSheet.Cells(introw, 24) = "test"
ActiveSheet.Cells(introw, 25) = "test"
ActiveSheet.Cells(introw, 34) = "test"

introw = introw + 1
Loop

End Sub
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
1 juil. 2009 à 11:58
essaye ça !Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


letemps = Time ' heure du système.

ladate = Format(InputBox("Donner la date et l'heure SVP...", "Saisie de la date", Date), "dd/mm/yyyy")

ladate = ladate & "_" & letemps

introw = 1



While ActiveSheet.Cells(1, introw) <> ""

ActiveSheet.Cells(23, introw).Value = "RECHERCHEV(D2;'Commune CAD PDL'!A:B;2;FAUX)"
ActiveSheet.Cells(24, introw).Value = ActiveSheet.Cells(24, introw - 1)
ActiveSheet.Cells(25, introw).Value = "=RECHERCHEV(W2;'Communes BEX'!$A$2:$C$601;3;FAUX)"
ActiveSheet.Cells(34, introw).Value = "test"

introw = introw + 1
Wend
end sub
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
1 juil. 2009 à 11:59
Pardon les post se sont croisés
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 11:59
oui ^^
Le mien marche, mais faut juste modifier l'en tête de la macro avec celle du tien ;)
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 12:00
Sa à fonctionner, mais sa à remplacer toutes mes cellules par "test" il va bien jusqu'à la fin , mais toute la colonnes est remplacer par test.
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 12:01
Ben voui c normal....
Faut quand même le lire un peu le truc qu'on te file desfois -_-'

j'ai mis test dans toutes les cases, donc tu as juste à re remplacer!
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
1 juil. 2009 à 12:01
Exact j'ai fait un copier coller de l'entête précédente.
C'est ta méthode qui est la bonne.
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 12:04
Pour le code de bidouille -> erreur 1004 sur cette ligne
ActiveSheet.Cells(24, introw).Value = ActiveSheet.Cells(24, introw - 1)
Bon je vous remercie pour l'instant de votre aide mais la je vais manger bonne app à vous deux et à tout à l'heure.
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 12:05
Oui oui je sais que sa met "test" mais sa ma remplacer aussi ce qui été déjà remplie, c'est pour ca!
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 12:06
Ah ba oui ca ecris dans toute les cases de la colonne!
c'est ce que t'as demandé...
0
Fou_Du_Guidon Messages postés 320 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 9 juillet 2010 38
1 juil. 2009 à 12:11
Lol on c'est mal compris je pense, il faut que ca remplisse les cellules vides jusqu'à la derniére ligne mais sans remplacer les précédent enregistrement ni l'entete de colonne
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
1 juil. 2009 à 12:14
Ah ba voila si tu le dis pas aussi -_-'

pour ca il faut que tu mette un if autou de chaque ligne activesheet...

if activesheet.cells().value = ""
activesheet.cells().value="formule"
end if
0