Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 10h28   #1
Invité de passage
 
Étudiant
Inscription : novembre 2011
Messages : 22
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 22
Points : 2
Points : 2
Bonjour à toutes et à tous !

Cela fais bientôt une semaine que je me casse la tête sur une macro Excel... Une petite aide de votre part serait très sympathique :-).

Je me suis mis à VBA il y a maintenant 1mois et je ne le maitrise pas encore sur le bout des doigts...

Voici mon petit problème:

Je dois créer une macro Excel pour mon école et j'ai quelques difficultés... Concrètement, je dois extraire un planning de 4 semaines, à partir d'un planning annuel.

J'aimerai biensur que cette macro copie mon planning de 4 semaines dans une nouvelle feuille et qu'elle se positionne à la date d'aujourd'hui, afin d'avoir une vision de 4 semaines.

Cette macro aurait pour but d'extraire et de mettre à jour le planning de 4semaines en fonction de la date du jour.

J'avais pensé à chercher la date de départ et de sélection de cette date jusque 20 colonnes après.

Pour la date du jour, j'ai claqué ça dans une cellule =EQUIV(AUJOURDHUI();Planning!139:139;0)
Puis j'ai pensé à récupérer cette valeur dans ta macro, et le tour est joué.

Cepdendant, je ne sais pas interpréter ces étapes sur VBA... :-/

Comment puis-je faire ? Pourriez-vous m'aider s'il vous plait ?

J'éspère avoir été assez clair et m'être bien fais comprendre.

Ci-joint les pièces jointes en .jpg.

Merci beaucoup pour votre aide précieuse !
Images attachées
Type de fichier : jpg Sans titre.JPG (299,6 Ko, 18 affichages)
Type de fichier : jpg Sans titre1.JPG (159,5 Ko, 13 affichages)
chpierro62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 13h41   #2
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
bonjour,

tu peux tester ca.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Dim NomFeuille, celluleDestination, FeuilleDestination As String
 
    NomFeuille = "Planning (2)" 'marque le nom de ta feuille avec des ""
 
    premiereColonne = Worksheets(NomFeuille).Cells.Find(Format(Date, "dd/mm")).Column
    Range(Columns(premiereColonne), Columns(premiereColonne + 20)).Copy
 
    FeuilleDestination = "Dates"
    celluleDestination = "A1" 'change la cellule celon tes besoins
 
    Worksheets(FeuilleDestination).Range(celluleDestination).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
    Worksheets(FeuilleDestination).Select
j'ai essayé de l'adapter en utilisant tes photos
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 15h22   #3
Invité de passage
 
Étudiant
Inscription : novembre 2011
Messages : 22
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 22
Points : 2
Points : 2
Merci pour ta réponse.

Cependant, il me détecte une erreur sur cette ligne:

premiereColonne = Worksheets(NomFeuille).Cells.Find(Format(Date, "dd/mm/yyyy")).Column

Comment puis-je faire ?

Je précise que j'ai modifié le format de la date car mes dates sont de la forme 20/12/2012 par exemple.

Merci !
chpierro62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 07h15   #4
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
Bonjour,

remplaces la ligne par

Code :
premiereColonne = Worksheets(NomFeuille).Cells.Find(Date).Column
et ca doit etre bon ^^
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h57   #5
Invité de passage
 
Étudiant
Inscription : novembre 2011
Messages : 22
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 22
Points : 2
Points : 2
ça ne fonctionne toujours pas

Ce coup-ci, Excel ne me détecte aucune erreur, cependant je me retrouve avec la feuille "Dates" qui est devenue complètement vierge...

What's the problem please ?

Merci !
chpierro62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h59   #6
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
donne moi ton fichier ce sera plus facile à comprendre ^^
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 15h28   #7
Invité de passage
 
Étudiant
Inscription : novembre 2011
Messages : 22
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 22
Points : 2
Points : 2
Disons que c'est un fichier confidentiel...

Tu veux peut-être plus de screens ?
chpierro62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 09h54   #8
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
bah avec les screens ca ne va pas etre facile mais si tu peux pas faire autrement fais donc ^^

apres les données perso je m'en fiche ^^ tu retires la raison sociale et ton fichier ne sera plus reconnaissable ^^
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 15h44   #9
Candidat au titre de Membre du Club
 
Inscription : mai 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 21
Points : 14
Points : 14
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim i as integer
Dim colonnedebut as integer
Dim fintableau as integer
 
sheets("planning (2)").select
 
fitnableau=3 'le numéro de la colonne où apparait ta 1ère date
 
while cells(139,fintableau+1)<>""
     fintableau=fintableau+1
Wend
 
For i=3 to fintableau
     If cells(139,i)=today() then
           colonnedebut=i
           i=fintableau
     End if
Next i
 
Range(cells(1,i),cells(300,i+20)).select 'tu peux remplacer 300 par le numéro de la dernière que tu dois copier/coller
 
selection.copy
sheets("Dates").select
cells(1,1).select
Activesheet.paste
J'ai pas testé et il y a peut-être des trucs à revoir, mais l'idée est là je pense.

Peut-être qu'on peut épurer le code en remplaçant le range par un columns, mais j'arrive pas à trouver le moyen de faire marcher columns en lui faisant passer des chiffres et pas des lettres.
Fred.dz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h06.


 
 
 
 
Partenaires

Hébergement Web