macro excel

Le
celine
Bonjour a tous,

J'ai un problème avec des macros. J'ai crée un fichier qui permet de
récupérer des données d'un autre fichier (avec une macro)

Voici la macro

ActiveSheet.Unprotect Password:="Xxxx"

Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"

'LUNDI 1 SEPTEMBRE 2008

Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Sheets("LUNDI 1 SEPTEMBRE").Select



Cependant dans les deux fichiers, j'ai des macros.
La récupération des données dans le deuxième fichier ne se fait pas: elle
s'arrete à l'ouverture du fichier seulement.

Peut etre est ce un problème de macro à désactiver dans le fichier
"planning" ??

Merci d'avance a tous pour votre aide.

Bonne journée
Céline
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #16660881
Bonjour.
Poste un peu plus de ton code. Comme la partie "récupération" n'y figure
pas, ce n'est pas facile de t'aider. Est-ce que tu as un message d'erreur,
ou la macro s'arrête elle sans raison apparente ?
Cordialement.
Daniel
"celine"
Bonjour a tous,

J'ai un problème avec des macros. J'ai crée un fichier qui permet de
récupérer des données d'un autre fichier (avec une macro)

Voici la macro

ActiveSheet.Unprotect Password:="Xxxx"

Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"

'LUNDI 1 SEPTEMBRE 2008

Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Sheets("LUNDI 1 SEPTEMBRE").Select

......

Cependant dans les deux fichiers, j'ai des macros.
La récupération des données dans le deuxième fichier ne se fait pas: elle
s'arrete à l'ouverture du fichier seulement.

Peut etre est ce un problème de macro à désactiver dans le fichier
"planning" ??

Merci d'avance a tous pour votre aide.

Bonne journée
Céline


celine
Le #16661191
REbonjour

voici la macro:

Function Récup_Septembre08_1()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Sheets("LUNDI 1 SEPTEMBRE").Select
Sheets("LUNDI 1 SEPTEMBRE").Range("C4:J24").Copy
ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1).PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Ligne = Ligne + 20
Application.CutCopyMode = False
Workbooks(Fich).Close False
Fich = Dir
Loop

etc...

End Function

La macro s'arrete toute seule.

Merci pour votre aide

Céline




"Daniel.C" a écrit :

Bonjour.
Poste un peu plus de ton code. Comme la partie "récupération" n'y figure
pas, ce n'est pas facile de t'aider. Est-ce que tu as un message d'erreur,
ou la macro s'arrête elle sans raison apparente ?
Cordialement.
Daniel
"celine"
> Bonjour a tous,
>
> J'ai un problème avec des macros. J'ai crée un fichier qui permet de
> récupérer des données d'un autre fichier (avec une macro)
>
> Voici la macro
>
> ActiveSheet.Unprotect Password:="Xxxx"
>
> Dim Fich As String, Ligne As Long
> Const Chemin = "T:PlanningPlanning 2008"
>
> 'LUNDI 1 SEPTEMBRE 2008
>
> Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
> Do While Fich <> ""
> Workbooks.Open Filename:=Chemin & Fich
> Sheets("LUNDI 1 SEPTEMBRE").Select
>
> ......
>
> Cependant dans les deux fichiers, j'ai des macros.
> La récupération des données dans le deuxième fichier ne se fait pas: elle
> s'arrete à l'ouverture du fichier seulement.
>
> Peut etre est ce un problème de macro à désactiver dans le fichier
> "planning" ??
>
> Merci d'avance a tous pour votre aide.
>
> Bonne journée
> Céline





Daniel.C
Le #16661271
La variable Ligne n'est pas initialisée au moment du traitement du premier
fichier.
Daniel
"celine"
REbonjour

voici la macro:

Function Récup_Septembre08_1()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Sheets("LUNDI 1 SEPTEMBRE").Select
Sheets("LUNDI 1 SEPTEMBRE").Range("C4:J24").Copy
ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1).PasteSpecial
Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Ligne = Ligne + 20
Application.CutCopyMode = False
Workbooks(Fich).Close False
Fich = Dir
Loop

etc...

End Function

La macro s'arrete toute seule.

Merci pour votre aide

Céline




"Daniel.C" a écrit :

Bonjour.
Poste un peu plus de ton code. Comme la partie "récupération" n'y figure
pas, ce n'est pas facile de t'aider. Est-ce que tu as un message
d'erreur,
ou la macro s'arrête elle sans raison apparente ?
Cordialement.
Daniel
"celine" news:

> Bonjour a tous,
>
> J'ai un problème avec des macros. J'ai crée un fichier qui permet de
> récupérer des données d'un autre fichier (avec une macro)
>
> Voici la macro
>
> ActiveSheet.Unprotect Password:="Xxxx"
>
> Dim Fich As String, Ligne As Long
> Const Chemin = "T:PlanningPlanning 2008"
>
> 'LUNDI 1 SEPTEMBRE 2008
>
> Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
> Do While Fich <> ""
> Workbooks.Open Filename:=Chemin & Fich
> Sheets("LUNDI 1 SEPTEMBRE").Select
>
> ......
>
> Cependant dans les deux fichiers, j'ai des macros.
> La récupération des données dans le deuxième fichier ne se fait pas:
> elle
> s'arrete à l'ouverture du fichier seulement.
>
> Peut etre est ce un problème de macro à désactiver dans le fichier
> "planning" ??
>
> Merci d'avance a tous pour votre aide.
>
> Bonne journée
> Céline







michdenis
Le #16661351
| La variable Ligne n'est pas initialisée au moment du traitement du premier
| fichier.

Je ne suis pas d'accord avec cette affirmation.
Comme la variable est déclaré comme "As Long" elle prend
automatiquement la valeur 0.... le seul problème c'est qu'il
n'y a pas de ligne 0 dans Excel ... elle débute à 1.

Tu veux dire qu'elle doit affectée 1 à la variable ligne
en début de procédure ...! Non ?

;-))
Daniel.C
Le #16661521
Bonjour.
Merci de ta précision. Je n'y avais pas songé ;-)
Daniel
"michdenis"

| La variable Ligne n'est pas initialisée au moment du traitement du
premier
| fichier.

Je ne suis pas d'accord avec cette affirmation.
Comme la variable est déclaré comme "As Long" elle prend
automatiquement la valeur 0.... le seul problème c'est qu'il
n'y a pas de ligne 0 dans Excel ... elle débute à 1.

Tu veux dire qu'elle doit affectée 1 à la variable ligne
en début de procédure ...! Non ?

;-))



celine
Le #16662191
Désolé mais je n'ai pas tout compris

"Daniel.C" a écrit :

Bonjour.
Merci de ta précision. Je n'y avais pas songé ;-)
Daniel
"michdenis"
>
> | La variable Ligne n'est pas initialisée au moment du traitement du
> premier
> | fichier.
>
> Je ne suis pas d'accord avec cette affirmation.
> Comme la variable est déclaré comme "As Long" elle prend
> automatiquement la valeur 0.... le seul problème c'est qu'il
> n'y a pas de ligne 0 dans Excel ... elle débute à 1.
>
> Tu veux dire qu'elle doit affectée 1 à la variable ligne
> en début de procédure ...! Non ?
>
> ;-))
>





Daniel.C
Le #16662421
Comme tu n'as pas initialisé Ligne :
Ligne = 1 (ou une autre valeur), la valeur de Ligne est par défaut 0;
"ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1)"
fait donc référence à la ligne 0, ce qui devrait provoquer une erreur, à
moins que tu n'aies mis une ligne "On Error Resume Next" dans la macro
appelant la fonction. Dans ce cas, la copie n'est pas effectuée.
Daniel
"celine"
Désolé mais je n'ai pas tout compris

"Daniel.C" a écrit :

Bonjour.
Merci de ta précision. Je n'y avais pas songé ;-)
Daniel
"michdenis"
>
> | La variable Ligne n'est pas initialisée au moment du traitement du
> premier
> | fichier.
>
> Je ne suis pas d'accord avec cette affirmation.
> Comme la variable est déclaré comme "As Long" elle prend
> automatiquement la valeur 0.... le seul problème c'est qu'il
> n'y a pas de ligne 0 dans Excel ... elle débute à 1.
>
> Tu veux dire qu'elle doit affectée 1 à la variable ligne
> en début de procédure ...! Non ?
>
> ;-))
>







celine
Le #16662691
En fait la macro est séparé en deux macros.

la premiere macro est:

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Ligne = 6
Call Récup_Septembre08_1

Et la deuxième macro est

Function Récup_Septembre08_1()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Sheets("LUNDI 1 SEPTEMBRE").Select
Sheets("LUNDI 1 SEPTEMBRE").Range("C4:J24").Copy
ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1).PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Ligne = Ligne + 20
Application.CutCopyMode = False
Workbooks(Fich).Close False
Fich = Dir
Loop

Donc il y a bien le numéro de la ligne

Céline





"Daniel.C" a écrit :

Comme tu n'as pas initialisé Ligne :
Ligne = 1 (ou une autre valeur), la valeur de Ligne est par défaut 0;
"ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1)"
fait donc référence à la ligne 0, ce qui devrait provoquer une erreur, à
moins que tu n'aies mis une ligne "On Error Resume Next" dans la macro
appelant la fonction. Dans ce cas, la copie n'est pas effectuée.
Daniel
"celine"
> Désolé mais je n'ai pas tout compris
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>> Merci de ta précision. Je n'y avais pas songé ;-)
>> Daniel
>> "michdenis" >>
>> >
>> > | La variable Ligne n'est pas initialisée au moment du traitement du
>> > premier
>> > | fichier.
>> >
>> > Je ne suis pas d'accord avec cette affirmation.
>> > Comme la variable est déclaré comme "As Long" elle prend
>> > automatiquement la valeur 0.... le seul problème c'est qu'il
>> > n'y a pas de ligne 0 dans Excel ... elle débute à 1.
>> >
>> > Tu veux dire qu'elle doit affectée 1 à la variable ligne
>> > en début de procédure ...! Non ?
>> >
>> > ;-))
>> >
>>
>>
>>





celine
Le #16662671
petite précision le début de la macro s'éxécute correctement: cela m'ouvre
bien le fichier mais cela se stop avant la sélection de la feuille "Lundi 1
septembre"

Céline

"celine" a écrit :

En fait la macro est séparé en deux macros.

la premiere macro est:

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Ligne = 6
Call Récup_Septembre08_1

Et la deuxième macro est

Function Récup_Septembre08_1()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Sheets("LUNDI 1 SEPTEMBRE").Select
Sheets("LUNDI 1 SEPTEMBRE").Range("C4:J24").Copy
ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1).PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Ligne = Ligne + 20
Application.CutCopyMode = False
Workbooks(Fich).Close False
Fich = Dir
Loop

Donc il y a bien le numéro de la ligne

Céline





"Daniel.C" a écrit :

> Comme tu n'as pas initialisé Ligne :
> Ligne = 1 (ou une autre valeur), la valeur de Ligne est par défaut 0;
> "ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1)"
> fait donc référence à la ligne 0, ce qui devrait provoquer une erreur, à
> moins que tu n'aies mis une ligne "On Error Resume Next" dans la macro
> appelant la fonction. Dans ce cas, la copie n'est pas effectuée.
> Daniel
> "celine" >
> > Désolé mais je n'ai pas tout compris
> >
> > "Daniel.C" a écrit :
> >
> >> Bonjour.
> >> Merci de ta précision. Je n'y avais pas songé ;-)
> >> Daniel
> >> "michdenis" > >>
> >> >
> >> > | La variable Ligne n'est pas initialisée au moment du traitement du
> >> > premier
> >> > | fichier.
> >> >
> >> > Je ne suis pas d'accord avec cette affirmation.
> >> > Comme la variable est déclaré comme "As Long" elle prend
> >> > automatiquement la valeur 0.... le seul problème c'est qu'il
> >> > n'y a pas de ligne 0 dans Excel ... elle débute à 1.
> >> >
> >> > Tu veux dire qu'elle doit affectée 1 à la variable ligne
> >> > en début de procédure ...! Non ?
> >> >
> >> > ;-))
> >> >
> >>
> >>
> >>
>
>
>


Daniel.C
Le #16663691
Heu non, parce qu'il faut soit mettre :
Ligne=6
dans la fonction
soit définir la variable comme publique au niveau de la première macro.
Le problème ne semble pas là car ta macro ne doit pas s'arrêter sans message
d'erreur. Est-ce que le premier clsseur est bien traité ? Quels sont les
noms de tes classeurs ? Quel est le nom exact de la feuille "Lundi 1
septembre" (précise bien les minuscules et les majuscules; le mieux est de
faire un copier / Coller du nom). La feuille "Liste " a-t-elle bien un
espace après le mot "Liste" ?
Peux-tu mettre ton classeur sur www.cjoint.com en effaçant les données
confidentielles ? Si tu pouvais mettre également le classeur qui pose
problème, ce serait bien.
Daniel
"celine"
petite précision le début de la macro s'éxécute correctement: cela m'ouvre
bien le fichier mais cela se stop avant la sélection de la feuille "Lundi
1
septembre"

Céline

"celine" a écrit :

En fait la macro est séparé en deux macros.

la premiere macro est:

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Ligne = 6
Call Récup_Septembre08_1

Et la deuxième macro est

Function Récup_Septembre08_1()
ActiveSheet.Unprotect Password:="Xxxx"
Dim Fich As String, Ligne As Long
Const Chemin = "T:PlanningPlanning 2008"
Fich = Dir("T:PlanningPlanning 2008SEPTEMBRE 2008.xl*")
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Sheets("LUNDI 1 SEPTEMBRE").Select
Sheets("LUNDI 1 SEPTEMBRE").Range("C4:J24").Copy
ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1).PasteSpecial
Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Ligne = Ligne + 20
Application.CutCopyMode = False
Workbooks(Fich).Close False
Fich = Dir
Loop

Donc il y a bien le numéro de la ligne

Céline





"Daniel.C" a écrit :

> Comme tu n'as pas initialisé Ligne :
> Ligne = 1 (ou une autre valeur), la valeur de Ligne est par défaut 0;
> "ThisWorkbook.Sheets("Liste ").Cells(Ligne, 1)"
> fait donc référence à la ligne 0, ce qui devrait provoquer une erreur,
> à
> moins que tu n'aies mis une ligne "On Error Resume Next" dans la macro
> appelant la fonction. Dans ce cas, la copie n'est pas effectuée.
> Daniel
> "celine" > news:
>
> > Désolé mais je n'ai pas tout compris
> >
> > "Daniel.C" a écrit :
> >
> >> Bonjour.
> >> Merci de ta précision. Je n'y avais pas songé ;-)
> >> Daniel
> >> "michdenis" > >>
> >> >
> >> > | La variable Ligne n'est pas initialisée au moment du traitement
> >> > du
> >> > premier
> >> > | fichier.
> >> >
> >> > Je ne suis pas d'accord avec cette affirmation.
> >> > Comme la variable est déclaré comme "As Long" elle prend
> >> > automatiquement la valeur 0.... le seul problème c'est qu'il
> >> > n'y a pas de ligne 0 dans Excel ... elle débute à 1.
> >> >
> >> > Tu veux dire qu'elle doit affectée 1 à la variable ligne
> >> > en début de procédure ...! Non ?
> >> >
> >> > ;-))
> >> >
> >>
> >>
> >>
>
>
>




Publicité
Poster une réponse
Anonyme