VBA Ouverture classeur sous condition de date
Résolu/Fermé
Clark...kent
Messages postés
44
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
1 mars 2020
-
Modifié par Clark...kent le 25/07/2012 à 15:52
Clark...kent Messages postés 44 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 1 mars 2020 - 26 juil. 2012 à 10:58
Clark...kent Messages postés 44 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 1 mars 2020 - 26 juil. 2012 à 10:58
A voir également:
- VBA Ouverture classeur sous condition de date
- Excel cellule couleur si condition texte - Guide
- Airpods 3 date de sortie - Guide
- Publipostage date en anglais ✓ - Forum Excel
- Jm date désabonnement ✓ - Forum Consommation & Internet
6 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
25 juil. 2012 à 20:22
25 juil. 2012 à 20:22
Bonjour Clarck
Mettre des with a la suite de test if ou elseif, c'est pas top, l'interpreteur VBA se melange les pinceaux.
'Insertion de la semaine dans la colonne O de la feuille Donnees
Range("O" & Ligne & ":O" & .Range("C" & Rows.Count).End(xlUp).Row) = Format(Sheets("Chargement").Range("A3"), "ww")
Range("O" pas du meme onglet que .Range("C". Vous voulez copier une cellule dans plusieurs ou ......
Bonne suite
Mettre des with a la suite de test if ou elseif, c'est pas top, l'interpreteur VBA se melange les pinceaux.
'Insertion de la semaine dans la colonne O de la feuille Donnees
Range("O" & Ligne & ":O" & .Range("C" & Rows.Count).End(xlUp).Row) = Format(Sheets("Chargement").Range("A3"), "ww")
Range("O" pas du meme onglet que .Range("C". Vous voulez copier une cellule dans plusieurs ou ......
Bonne suite
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
26 juil. 2012 à 10:14
26 juil. 2012 à 10:14
Bonjour,
Range ("B" & Ligne & ":B" & Range("C" & Rows.Count).End(xlUp).Row)
Formula = "=IF(RC[6]="""","""",IF(RC[6]=100%,""Oui"",""Non""))"
Value = Value
Si formula est rattache a Range......, Il faut mettre .formula....... au bout de la ligne Range.....
Value = Value ???? quoi-t-est-ce
Workbook(Fichier).Activacte
Close savechanges = False
Workbooks(Fichier).Activacte
Workbooks(Fichier).Close savechanges := False
Bonne continuation
Range ("B" & Ligne & ":B" & Range("C" & Rows.Count).End(xlUp).Row)
Formula = "=IF(RC[6]="""","""",IF(RC[6]=100%,""Oui"",""Non""))"
Value = Value
Si formula est rattache a Range......, Il faut mettre .formula....... au bout de la ligne Range.....
Value = Value ???? quoi-t-est-ce
Workbook(Fichier).Activacte
Close savechanges = False
Workbooks(Fichier).Activacte
Workbooks(Fichier).Close savechanges := False
Bonne continuation
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
26 juil. 2012 à 10:37
26 juil. 2012 à 10:37
Re,
Application.DisplayAlertes=false devrait aller.
Application.DisplayAlertes=false devrait aller.
Clark...kent
Messages postés
44
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
1 mars 2020
2
Modifié par Clark...kent le 26/07/2012 à 10:17
Modifié par Clark...kent le 26/07/2012 à 10:17
En effet, je ne connaissais pas ce problème, j'ai un dernier soucis maintenant, une petite ligne rebelle :
Private Sub Charger_Click()
Dim Ligne As Long
Dim valeur As Date
Dim lig As Long
Dim Lige As Long
Dim Rege As Long
valeur = Worksheets("Chargement").Range("A3").Value
mois = Worksheets("Chargement").Range("A5").Value
Chemin = "C:\"
Fichier = Format(valeur, "dd mm yyyy") & ".xls"
Special = Format(mois, "mmmm")
Sheets("Donnees").Select
'Positionnement sur la première ligne vide de la feuille "donnees"
Ligne = Range("C" & Rows.Count).End(xlUp).Row + 1
'application non visible pour l'utilisateur
'Application.ScreenUpdating = False
'vérification de la présence du fichier source
Set resultat = Worksheets("Donnees").Columns("A:A").Find(valeur)
If resultat Is Nothing Then
MsgBox "Recherche des données à charger"
Else
MsgBox "Les données sont déjà présentes"
Exit Sub
End If
'Aucun fichier source disponible
If Dir(Chemin & Fichier) = "" And Dir(Chemin & Special & "\" & Fichier) = "" Then
MsgBox "Le fichier " & Fichier & " est introuvable!"
Exit Sub
ElseIf Dir(Chemin & Fichier) = "" Then
Workbooks.Open(Chemin & Special & "\" & Fichier).Activate
GoTo sélection
ElseIf Dir(Chemin & Special & "\" & Fichier) = "" Then
Workbooks.Open(Chemin & Fichier).Activate
End If
sélection:
'Ouverture du fichier source selon la date sélectionnée en A3
Sheets("Temps").Select
On Error Resume Next
Rege = Sheets("Temps").Range("A100000").End(xlUp).Row - 1
Sheets("Temps").Range("A3:K" & Rege).Select
Selection.Copy
'Copier les données de la feuille "Temps" dans la première ligne vide de la feuille "Données"
ThisWorkbook.Worksheets("Donnees").Range("C" & Ligne).PasteSpecial xlValues
Workbook(Fichier).Activacte
Close savechanges = False
ThisWorkbook.Activate
'Insertion de la date dans la colonne A dans la feuille Donnees
Range("A" & Ligne & ":A" & Range("C" & Rows.Count).End(xlUp).Row) = Format(Sheets("Chargement").Range("A3"), "mm/dd/yyyy")
'Insertion de la date dans la colonne N
Sheets("Donnees").Select
Columns("N:N").Value = Columns("A:A").Value
Columns("N:N").NumberFormat = "General"
'Insertion de la semaine dans la colonne O de la feuille Donnees
Range("O" & Ligne & ":O" & Range("C" & Rows.Count).End(xlUp).Row) = Format(Sheets("Chargement").Range("A3"), "ww")
'Calcul si le taux d'enregistrement est égal à 100% dans la feuille resultats
Range("B" & Ligne & ":B" & Range("C" & Rows.Count).End(xlUp).Row) = Formula = "=IF(RC[6]="""","""",IF(RC[6]=100%,""Oui"",""Non""))"
Value = Value
'Sauvegarde du classeur actif
ActiveWorkbook.Save
MsgBox "Vos données ont été chargé et sauvegardé"
Sheets("Chargement").Select
'Arrière plan visible
Application.ScreenUpdating = True
End Sub
Il ne veux pas me fermer le fichier source.
Ensuite, le calcul ne fonctionne pas, il m'inscrit 'FAUX' partout
Merci de ton aide.
Private Sub Charger_Click()
Dim Ligne As Long
Dim valeur As Date
Dim lig As Long
Dim Lige As Long
Dim Rege As Long
valeur = Worksheets("Chargement").Range("A3").Value
mois = Worksheets("Chargement").Range("A5").Value
Chemin = "C:\"
Fichier = Format(valeur, "dd mm yyyy") & ".xls"
Special = Format(mois, "mmmm")
Sheets("Donnees").Select
'Positionnement sur la première ligne vide de la feuille "donnees"
Ligne = Range("C" & Rows.Count).End(xlUp).Row + 1
'application non visible pour l'utilisateur
'Application.ScreenUpdating = False
'vérification de la présence du fichier source
Set resultat = Worksheets("Donnees").Columns("A:A").Find(valeur)
If resultat Is Nothing Then
MsgBox "Recherche des données à charger"
Else
MsgBox "Les données sont déjà présentes"
Exit Sub
End If
'Aucun fichier source disponible
If Dir(Chemin & Fichier) = "" And Dir(Chemin & Special & "\" & Fichier) = "" Then
MsgBox "Le fichier " & Fichier & " est introuvable!"
Exit Sub
ElseIf Dir(Chemin & Fichier) = "" Then
Workbooks.Open(Chemin & Special & "\" & Fichier).Activate
GoTo sélection
ElseIf Dir(Chemin & Special & "\" & Fichier) = "" Then
Workbooks.Open(Chemin & Fichier).Activate
End If
sélection:
'Ouverture du fichier source selon la date sélectionnée en A3
Sheets("Temps").Select
On Error Resume Next
Rege = Sheets("Temps").Range("A100000").End(xlUp).Row - 1
Sheets("Temps").Range("A3:K" & Rege).Select
Selection.Copy
'Copier les données de la feuille "Temps" dans la première ligne vide de la feuille "Données"
ThisWorkbook.Worksheets("Donnees").Range("C" & Ligne).PasteSpecial xlValues
Workbook(Fichier).Activacte
Close savechanges = False
ThisWorkbook.Activate
'Insertion de la date dans la colonne A dans la feuille Donnees
Range("A" & Ligne & ":A" & Range("C" & Rows.Count).End(xlUp).Row) = Format(Sheets("Chargement").Range("A3"), "mm/dd/yyyy")
'Insertion de la date dans la colonne N
Sheets("Donnees").Select
Columns("N:N").Value = Columns("A:A").Value
Columns("N:N").NumberFormat = "General"
'Insertion de la semaine dans la colonne O de la feuille Donnees
Range("O" & Ligne & ":O" & Range("C" & Rows.Count).End(xlUp).Row) = Format(Sheets("Chargement").Range("A3"), "ww")
'Calcul si le taux d'enregistrement est égal à 100% dans la feuille resultats
Range("B" & Ligne & ":B" & Range("C" & Rows.Count).End(xlUp).Row) = Formula = "=IF(RC[6]="""","""",IF(RC[6]=100%,""Oui"",""Non""))"
Value = Value
'Sauvegarde du classeur actif
ActiveWorkbook.Save
MsgBox "Vos données ont été chargé et sauvegardé"
Sheets("Chargement").Select
'Arrière plan visible
Application.ScreenUpdating = True
End Sub
Il ne veux pas me fermer le fichier source.
Ensuite, le calcul ne fonctionne pas, il m'inscrit 'FAUX' partout
Merci de ton aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Clark...kent
Messages postés
44
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
1 mars 2020
2
Modifié par Clark...kent le 26/07/2012 à 10:28
Modifié par Clark...kent le 26/07/2012 à 10:28
Ton message et ma modification du précédent se sont croisés.
Value = Value c'est une sorte de mémo pour me rappeler à moi même de ne pas faire de VBA le matin dès 8h ;)
Non, sans rire, tout fonctionne, merci à toi f894009, est ce que par hasard tu sais si il existe un bout de code pour qu'il évite de conserver les grandes quantités de données copiées.
C'est à dire quand je ferme mon fichier excel, et que je lui demande de ne pas sauvegardé par vba, il me demande si je veux conservé le contenu du presse papier, il existe un moyen VBA pour que cela ne s'affiche plus, du genre : vide.pressepapier = true :)
Value = Value c'est une sorte de mémo pour me rappeler à moi même de ne pas faire de VBA le matin dès 8h ;)
Non, sans rire, tout fonctionne, merci à toi f894009, est ce que par hasard tu sais si il existe un bout de code pour qu'il évite de conserver les grandes quantités de données copiées.
C'est à dire quand je ferme mon fichier excel, et que je lui demande de ne pas sauvegardé par vba, il me demande si je veux conservé le contenu du presse papier, il existe un moyen VBA pour que cela ne s'affiche plus, du genre : vide.pressepapier = true :)
Clark...kent
Messages postés
44
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
1 mars 2020
2
26 juil. 2012 à 10:58
26 juil. 2012 à 10:58
merci!