![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre habitué
![]() |
Bonjour à tous,
Je suis bloqué sur une macro et je sais où ça bloque mais je sais pas comment résoudre mon problème. Voici mon code : Code :
Sub ENREGISTRER()
ENREGISTRER Macro
Sheets("TABLE").Select
Rows("1:1").Select
Selection.Copy
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("A11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("SAISIE DU CRF").Select
End Sub
Merci à tous de votre aide. Dernière modification par tiyolx ; 11/08/2008 à 10h39 |
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
|
Bonjour,
Il semble bien évident qu'avec ce code il soit difficile de copier ailleurs que dans "A11" mais il faudrait savoir ce que vous voulez copier et jusqu'où. Est-ce que c'est toujours la ligne 1 que vous voulez copier en "A11" puis "A12" etc ou est-ce que 1:1 doit devenir 2:2 ?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
|
|
|
|
|
|
#4 (permalink) |
|
Membre Expert
![]() Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
|
Si c'est à chaque fois que vous lancez la macro et que vous n'avez pas d'autres données que ces copies plus bas en colonne "A" :
Code :
Sub ENREGISTRER() ENREGISTRER Macro Sheets("TABLE").Select dl = Range("A65536").End(xlUp).Row If dl < 11 then dl = 11 end if Rows("1:1").Select Selection.Copy 'Je ne pense pas que les 3 lignes ci-dessous soient utiles Selection.End(xlDown).Select Selection.End(xlDown).Select Selection.End(xlDown).Select Range("A" & dl).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Sheets("SAISIE DU CRF").Select End Sub
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
|
|
|
|
|
|
#7 (permalink) |
|
Membre habitué
![]() |
Bonjour à tous,
un grand merci jacques_jean qui m'a aidé dans mon problème. voici le code de la solution Code :
Sub enregistrer() ' ' enregistrer Macro ' ' Sheets("TABLE").Select derniere_ligne = Range("A65536").End(xlUp).Row nouvelle_ligne = derniere_ligne + 1 Rows("1:1").Select Selection.Copy Range("A" & nouvelle_ligne).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Sheets("SAISIE DU CRF").Select End Sub PS: ne lachez pas du courage. |
|
|
|
|
|
#8 (permalink) |
|
Membre Expert
![]() Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
|
Ok, c'est de ma faute.
Petite rectification : Code :
Sub ENREGISTRER() 'ENREGISTRER Macro Sheets("TABLE").Select 'recherche de la dernière ligne non vide en colonne "A" dl = Range("A65536").End(xlUp).Row 'si la dernière ligne vide est < à 11 on l'initialise à la valeur 10 'en effet lors de la copie la variable "dl" sera augmentée de 1 'voir la ligne "Range("A" & dl + 1).Select" If dl < 11 Then dl = 10 End If Rows("1:1").Select Selection.Copy 'Je ne pense pas que les 3 lignes ci-dessous soient utiles 'Selection.End(xlDown).Select 'Selection.End(xlDown).Select 'Selection.End(xlDown).Select Range("A" & dl + 1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Sheets("SAISIE DU CRF").Select End Sub
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
|
|
|
|
|
|
#9 (permalink) |
|
Membre Expert
![]() Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
|
Je n'avais pas vu votre solution lorsque je vous ai adressé ma rectification.
Donc vous avez raison votre solution fonctionne aussi si la dernière ligne trouvée n'est jamais inférieure à 10. Or vous dîtes bien que vous voulez copier à partir de la ligne 11 et si cette dernière ligne peut être, par exemple la ligne 7, vous allez faire la 1ère copie en ligne 8. Mais ce n'est qu'une hypothèse, vous connaissez mieux que moi la structure de fichier.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
|
|
|
|
|
|
#10 (permalink) |
|
Membre habitué
![]() |
Jacques_jean
je ne t'avais pas précisez que "A11" était un chiffre sans importance. En fait les enregistrements commencent à partir de "A8". Merci de ton aide car sans toi je n'aurais pas trouvé car je connais pas la manière de faire des raisonnement avec le code VBA, n'y les synthaxes. |
|
|
|
|
![]() |
![]() |
||
Problème dans une macro
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|