Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro test journée

  • Initiateur de la discussion Initiateur de la discussion al1000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

al1000

XLDnaute Impliqué
bonjour


comment ecrire la maco:


si le dernier n° de journée inscrite dans la colonne a est
different du n° de journée en a5

alors je met une boite de dialogue

cliquer sur oui pour copier la case e1 puis efface la cellule e1

si non arreter la macro
 

Pièces jointes

  • 16.xls
    16.xls
    35.5 KB · Affichages: 85
  • 16.xls
    16.xls
    35.5 KB · Affichages: 89
  • 16.xls
    16.xls
    35.5 KB · Affichages: 85
Re : macro test journée

Bonsoir



Code:
Sub macro()
Dim dervalcola As Range
Set dervalcola = [A65536].End(xlUp)
If Not IsEmpty(dervalcola) And dervalcola <> [A5] Then
If MsgBox("Copie/Effacement en E1", vbYesNo, "Copie") = 6 Then
'mais copier E1 vers quoi ?  ici copie en F1
Range("E1").Copy Range("F1")
Range("E1").ClearContents
Else
Exit Sub
End If
End If
End Sub

A+
 
Re : macro test journée

Bonjour


Je répète la question:

Tu veux la coller ou ta cellule E1?

Testes le code ci-dessous
(avec en colonne A des cellules vides ou du texte et des dates)

Code:
Sub macro()
Dim chk
Dim nl
Dim dervalcola As Range
Dim plage As Range
Dim c As Range
Set dervalcola = [A65536].End(xlUp)
Set plage = Range("A8:A" & dervalcola.Row)
nl = plage.Rows.Count
For Each c In Range("A8:A" & dervalcola.Row)
If IsDate(c) Then chk = chk + 1
Next
If Not IsEmpty(dervalcola) And dervalcola <> [A5] And (chk - nl) = 0 Then
If MsgBox("Copie/Effacement en E1", vbYesNo, "Copie") = 6 Then
'mais copier E1 vers quoi ?  ici copie en F1
Range("E1").Copy Range("F1")
Range("E1").ClearContents
Else
Exit Sub
End If
End If
End Sub




A+
 
Dernière édition:
Re : macro test journée

bonjour

merci

chl
n1
dervercola
se sont des variables???

est ce que nous pouvons les appeler a
b
et c


pouquoi et comment comprendre l'ecriture de la macro:


Dim plage As Range
Dim c As Range
Set dervalcola = [A65536].End(xlUp)
Set plage = Range("A8:A" & dervalcola.Row)
nl = plage.Rows.Count
For Each c In Range("A8:A" & dervalcola.Row)
If IsDate(c) Then chk = chk + 1


a+
 
Re : macro test journée

Re



Voici la macro commentée

Code:
Sub macro()
Dim WS As Worksheet
Dim Feuille As Worksheet
Dim chk
Dim nl
Dim dervalcola As Range, plage As Range, c As Range
'nom de la feuille ou sont les données
Set Feuille = Sheets("Feuil3")
With Feuille
'dernière cellule colonne A
    Set dervalcola = .[A65536].End(xlUp)
'plage de cellules censés contenir des dates
    Set plage = .Range("A8:A" & dervalcola.Row)
'comptage du nombre de lignes de la plage
    nl = plage.Rows.Count
'vérification du format des cellules (Est-ce des dates ?)
    For Each c In .Range("A8:A" & dervalcola.Row)
    If IsDate(c) Then chk = chk + 1
    Next
'test conditions réuinies pour lancer MSgBox
    If Not IsEmpty(dervalcola) And dervalcola <> [A5] And (chk - nl) = 0 Then
    If MsgBox("Copie/Effacement en E1", vbYesNo, "Copie") = 6 Then
    Randomize
'création d'une nouvelle feuille
    Set WS = Sheets.Add
'attribution nom aléatoire
    WS.Name = "Nouvelle feuille " _
    & Int(CDbl(Time) * 10000)
'recopie E1 vers A1 de la nouvelle feuille
    .Range("E1").Copy WS.Range("A1")
'effacement E1
    .Range("E1").ClearContents
    Else
    Exit Sub
    End If
    End If
End With
End Sub

Des questions ?

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
1 K
Réponses
21
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…