XL 2013 [RESOLU] autre problème pour Installer une macro à la suite d'une autre

HdF59

XLDnaute Nouveau
Bonjour le forum et merci pour votre aide

Je possède une macro dans un fichier qui fonctionne très bien :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Application.ScreenUpdating = False
If Target.Address = "$E$14" And Range("E14") <> "" Then
For i = 3 To 65536
If Cells(i, 13) = "" Then
Cells(i, 13) = Date
Cells(i, 14) = Range("E6")
Cells(i - 1, 18) = Range("E7")
Cells(i, 16) = Range("E8")
Cells(i, 15) = Range("E9")
Cells(i - 1, 19) = Range("E10")
Cells(i, 17) = Range("E11")
Cells(i - 1, 20) = Range("E12")
Cells(i, 21) = Range("E14")

Exit For
End If
Next i
End If
Application.ScreenUpdating = True
End Sub

Par contre, je souhaiterai mettre celle-ci à la suite pour démarrer le fichier sur la cellule "E6" mais je n'y arrive pas

Private Sub Worksheet_Actived()
Range ("E6").select
End Sub

Pouvez-vous m'aider pour mon problème Merci Pascal
 

HdF59

XLDnaute Nouveau
Bonjour le Forum et merci d'avance pour votre aide.
Hier j'ai mis cette discussion sur le forum car je n'arrivais pas à m'en sortir. Juste après l'avoir mise, j'ai mis entre les deux macros : "end " puis cela a marché. Mais ce matin à l'ouverture et après avoir entré la donnée en E6, une fenêtre s'ouvre avec la macro disant : Seuls des commentaires peuvent apparaitre après End sub, end, ect ect"
Pouvez-vous m'aider sur ce coup là.
merci à celle ou celui qui me donne de son temps Pascal
 

Papou-net

XLDnaute Barbatruc
Bonjour Pascal,

Pas évident de lire un code en l'absence de son fichier support, toutefois je te propose:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Application.ScreenUpdating = False
If Target.Address = "$E$14" And Range("E14") <> "" Then
For i = 3 To 65536
If Cells(i, 13) = "" Then
Cells(i, 13) = Date
Cells(i, 14) = Range("E6")
Cells(i - 1, 18) = Range("E7")
Cells(i, 16) = Range("E8")
Cells(i, 15) = Range("E9")
Cells(i - 1, 19) = Range("E10")
Cells(i, 17) = Range("E11")
Cells(i - 1, 20) = Range("E12")
Cells(i, 21) = Range("E14")
Exit For
End If
Next i
End If
Range("E6").Select
Application.ScreenUpdating = True
End Sub

Puis pour la seconde macro:

Private Sub WorkBook_Activate() 'Activate au lieu de Actived
Sheets("F").Activate 'Remplacer "F" par le nom de la feuille désirée
Range ("E6").Select
End Sub

Bon dimanche.

Cordialement.
 

HdF59

XLDnaute Nouveau
Re le forum et à toi Papou-net
Je te remercie pour ton aide et le temps passé pour moi.
Je suis content de te dire que cela fonctionne mais seulement après avoir supprimé :"Range("E6").Select" en rouge.
Effectivement chaque entrée revenait systématiquement en E6.
Grands MERCIS à toi et bon dimanche Cordialement Pascal
 

HdF59

XLDnaute Nouveau
Bonjour le forum

Ce matin à l'ouverture de mon fichier, la cellule E6, n'était pas sélectionnée.
J'ai essayé plusieurs manipes pour tenter de faire repartir cette fameuse macro.

papou-net n'avait donné la solution dimanche dernier, et cela fonctionnait. Il est vrai que comme je dis dans le #4, j'ai supprimé "Range("E6").Select" en rouge,

Je vous envois les macros telles qu'elles sont dans mon fichier.

MERCI d'avance pour votre aide Pascal


Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Application.ScreenUpdating = False
If Target.Address = "$E$14" And Range("E14") <> "" Then
For i = 3 To 65536
If Cells(i, 13) = "" Then
Cells(i, 13) = Date
Cells(i, 14) = Range("E6")
Cells(i - 1, 18) = Range("E7")
Cells(i, 16) = Range("E8")
Cells(i, 15) = Range("E9")
Cells(i - 1, 19) = Range("E10")
Cells(i, 17) = Range("E11")
Cells(i - 1, 20) = Range("E12")
Cells(i, 21) = Range("E14")
Exit For
End If
Next i
End If
Range("E6").Select ---------------------Supprimé
Application.ScreenUpdating = True
End Sub

Seconde macro qui n'est plus prise en compte

Private Sub WorkBook_Activate()
Sheets("Année en cours").Activate
Range ("E6").Select
End Sub


Encore merci
 

Papou-net

XLDnaute Barbatruc
Bonjour Pascal,

La ligne que tu as supprimée n'a rien à voir avec l'ouverture du fichier. Par contre, pour la seconde macro, essaie de la déplacer dans l'événement "Workbook_Open" au lieu de "Activate":

Private Sub Workbook_Open()
Sheets("Année en cours").Activate
Range("E6").Select
End Sub

Ca devrait résoudre le problème.

Cordialement.
 

HdF59

XLDnaute Nouveau
Re le forum et bonsoir Papou-net et MERCI pour le temps que tu me consacres.
Je viens de suivre tes conseils mais en vain.
La situation reste inchangée.
J'ai copié tes données juste dessous la 1° macro sans rien rien faire d'autre. une ligne s'imbrique entre les 2 VBA et à l'ouverture, la cellule sélectionnée est celle de la fermeture du fichier.

Je remplis mes cellules en commençant par E6 puis E7 ...ect tout va bien sans aucune fenêtre d'avertissement venant des macros. Je ne comprends plus

J'espère que cela est réalisable Cordialement Pascal
 

Si...

XLDnaute Barbatruc
Bon_soir

Toujours la même histoire : ne pas savoir où écrire les macros.

Pour ouvrir un onglet précis à l'ouverture du classeur il faut la macro dans ThisWorkbook
VB:
Private Sub WorkBook_Open()
  Application.Goto Sheets("Année en cours").[E6]
End Sub
Une évènementielle s'écrit dans la fenêtre de codes de la Feuille
VB:
Private Sub Worksheet_Change(ByVal R As Range)
  Dim i As Long
  Application.ScreenUpdating = 0
  If R.Address = "$E$14" And [E14] <> "" and R.count=1 Then
    For i = 3 To 65536
      If Cells(i, 13) = "" Then
        Cells(i, 13) = Date
        Cells(i, 14) = [E6] : Cells(i - 1, 18) = [E7]
        Cells(i, 16) = [E8] :Cells(i, 15) = [E9]
        Cells(i - 1, 19) = [E10] :  Cells(i, 17) = [E11]
        Cells(i - 1, 20) = [E12] :  Cells(i, 21) = [E14]
        Exit For
      End If
    Next
  End If
  [E6].Select
End Sub

Nota je n'ai pas touché aux adresses des cellules concernées.
 
Dernière édition:

HdF59

XLDnaute Nouveau
Re le Forum et à toi papou-net et Si

Je viens d'essayer les conseils de SI et cela fonctionne.
Je tiens à vous remercier tous deux pour le temps que vous m'avez consacré.

Je vais voir demain en temps réel pour une confirmation

GRANDS MERCIS à vous deux Pascal
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16