Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

Excel Forum d'entraide sur Excel

Réponse
 
Outils de la discussion
Vieux 11/08/2008, 10h27   #1 (permalink)
Membre habitué
 
Date d'inscription: mai 2005
Messages: 151
Envoyer un message via MSN à tiyolx
Par défaut Problème dans une macro

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
Peut-on faire en sort que la sélection de la colonne A passe toujours au suivant car elle est toujours sur "A11".

Merci à tous de votre aide.

Dernière modification par tiyolx ; 11/08/2008 à 10h39
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 11h10   #2 (permalink)
Membre Expert
 
Avatar de jacques_jean
 
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
Par défaut

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.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 11h15   #3 (permalink)
Membre habitué
 
Date d'inscription: mai 2005
Messages: 151
Envoyer un message via MSN à tiyolx
Par défaut précision

Bonjour jacques_jean,

Je crée une macro pour enregistrer la ligne 1 sur la suivante comme ton ex A11 puis A12 puis A13 puis A14 à chaque fois que j'exécute la macro.

J'attends ta réponse.

Merci de ton aide.
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 12h22   #4 (permalink)
Membre Expert
 
Avatar de jacques_jean
 
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
Par défaut

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
 
A vérifier.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 13h19   #5 (permalink)
Membre habitué
 
Date d'inscription: mai 2005
Messages: 151
Envoyer un message via MSN à tiyolx
Par défaut retour de test

Bonjour Jacques_Jean,

Je viens de testé ton code mais il me fais la même chose il copie la première ligne toujours sur la même ligne.

Je vais enlever les trois phrases que tu m'as indiqué pour voir si cela change quelque chose.

Merci.
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 13h24   #6 (permalink)
Membre habitué
 
Date d'inscription: mai 2005
Messages: 151
Envoyer un message via MSN à tiyolx
Par défaut re

Je suis désolé mais cela n'a rien changé.

peux-tu m'expliquer ta démarche pour que je comprenne.

merci
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 13h57   #7 (permalink)
Membre habitué
 
Date d'inscription: mai 2005
Messages: 151
Envoyer un message via MSN à tiyolx
Par défaut solution du problème

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
 
Merci développez.com et merci à tous.

PS: ne lachez pas du courage.
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 14h08   #8 (permalink)
Membre Expert
 
Avatar de jacques_jean
 
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
Par défaut

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
 
J'ai fait un essai et cela doit fonctionner.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 14h22   #9 (permalink)
Membre Expert
 
Avatar de jacques_jean
 
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
Par défaut

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.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/08/2008, 14h40   #10 (permalink)
Membre habitué
 
Date d'inscription: mai 2005
Messages: 151
Envoyer un message via MSN à tiyolx
Par défaut re

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.
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide