Rappeler valeur d'une cellule en nombre eNTIER

un internaute

XLDnaute Impliqué
Bonjour le forum,
Dans une cellule A4 j'ai ceci: =4.048+'Année 2016'!E16
Je voudrais rappeler en cellule H4 que le nombre entier c'est à dire 4
Merci pour vos éventuels retours
Bien cordialement
 

un internaute

XLDnaute Impliqué
Re,
Alors comme ceci
Code:
=stxt(E4;1;1)
Re-bonjour M12,
Je me suis très mal exprimé comme d'hab!!!
Je me suis rappelé que j'ai cette macro dans la feuille (par exemple année 2017)

Private Sub Worksheet_Change(ByVal Target As Range) 'Macro différente du Programme => CONSOMMATION_EAU_CHAUDE_CHOIX_ANNÉE_EN_COURS_AUTOMATIQUE_V001
If Not Intersect(Range("E4:E15,H4:H15"), Target) Is Nothing And Target.Count = 1 Then
If IsNumeric(Target) And Target <> "" Then
Application.EnableEvents = False
Target.Formula = "=" & Target & "+'Année 2016'!" & Mid(Target.Address, 2, 1) & "16"
Application.EnableEvents = True
End If
End If
End Sub

Si je la met en mode commentaires je peux taper ce que je veux colonne H4:H15 nombre entier (2 fois/an)
Mais elle est nécessaire pour la colonne E4:E15 pour faire des différences.
Donc il faut que je "jongle" 2 fois/an en princite avril et octobre (pour un relevé de compteur)
Pour résumer pour taper un nombre entier au mois d'avril je mets la macro en commentaire j'enregistre le fichier.
Je la remet en mode non commentaires jusqu'au mois d'octobre pour taper mon nombre entier du mois d'octobre et j'enregistre
Donc il faut je pense modifier la macro mais comment?
Si tu as une idée pour éviter cette manoeuvre?
Cordialement
 

un internaute

XLDnaute Impliqué
Bonjour le forum,
J'ai trouvé ça sur le forum mais je n'en comprend pas tout le sens.
J'ai ajouté la ligne en rouge est ça fait bien ce que je veux mais y a t-il mieux à faire?

Private Sub Worksheet_Change(ByVal Target As Range) CONSOMMATION_EAU_CHAUDE_CHOIX_ANNÉE_EN_COURS_AUTOMATIQUE_V001
If Not Intersect(Range("E4:E15"), Target) Is Nothing And Target.Count = 1 Then
If IsNumeric(Range("H4:H15" & x + 1)) Then Cells(z, 2).Delete Shift:=xlToLeft
If IsNumeric(Target) And Target <> "" Then
Application.EnableEvents = False
Target.Formula = "=" & Target & "+'Année 2016'!" & Mid(Target.Address, 2, 1) & "16"
Application.EnableEvents = True
End If
End If
End Sub


Merci pour vos éventuels retours
Bien cordialement
 

Dranreb

XLDnaute Barbatruc
Bonjour, et joyeux Noël.
Au cas improbable où ce serait en adéquation avec votre besoin, la procédure suivante respecterait la frappe d'une formule, en particulier un nombre entier précédé d'un "=".
En cas de frappe d'une constante numérique en H4:H15,E4:E15 elle la transforme en une formule qui y ajoute la cellule ligne 16 de la feuille 'Année 2016', même colonne.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("H4:H15,E4:E15"), Target) Is Nothing Then Exit Sub
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then Exit Sub
If Target.HasFormula Then Exit Sub
If VarType(Target.Value) <> vbDouble Then Exit Sub
Application.EnableEvents = False
Target.FormulaR1C1 = "=" & Trim$(Str$(Target.Value)) & "+'Année 2016'!R16C"
Application.EnableEvents = True
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87