Macro Excel copier / coller

paul57 Messages postés 19 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voila je m'y connais pas trop en macro excel donc si qqn pouvait m'aider ca serait cool

Je voudrai créer un code qui permet en cliquant sur un bouton de copier coller une donné :

Dans la feuille 1, si H14 = "00:00" alors copier H22 dans la feuille 2 en C7 (si C7 vide sinn message erreur)
.........................si H14 = "01:00" alors copier H22 dans le feuille 2 en C8 (si C8 vide sinn message erreur)
.........................si H14 = "02:00" alors ........................................en C9 (si C9 vide sinn message erreur)
etc.... jusqu'a 23:00

Merci de votre aide
A voir également:

5 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour

essaies

Sub copier_svt_hr()
Dim lig As Byte
If Range("H14") >= 0 And Range("H14") < 1 Then
    lig = Range("H14") * 24 + 7
    With Sheets(2)
        If Not IsEmpty(.Cells(lig, 3)) Then
            MsgBox "erreur!", vbCritical
        Else
            .Cells(lig, 3) = Sheets(1).Range("H22")
        End If
    End With
Else
    MsgBox "saisie incorrecte", vbCritical
End If
End Sub
0
paul57
 
Bonjour,

Merci de votre rep,

Il y a un petit prob dans ce que vous avez fait. J'aurai peut etre du préciser que les valeurs 00:00 ; 01:00.......................23:00 sont au format texte.
Je sais pas si ca change qqch pke la ca ne marche pas

MERCI
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
J'aurai peut etre du préciser

bin oui
désolé

Michel
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
re,
Si sur ta feuille excel l'heure apparait dans la cellule H14 sous la forme "10:00" avec les guillemets
Sub copier_svt_hr()
Dim lig As Byte

lig = Val(Mid(Range("H14"), 2, 2)) * 24 + 7
If lig >= 0 And lig < 24 Then
    With Sheets(2)
        If Not IsEmpty(.Cells(lig, 3)) Then
            MsgBox "erreur!", vbCritical
        Else
            .Cells(lig, 3) = Sheets(1).Range("H22")
        End If
    End With
Else
    MsgBox "saisie incorrecte", vbCritical
End If
End Sub

edit 12:30h
si dans la barre de formule H14 étant sélectionné on a '10:00
àla place de
Val(Mid(Range("H14"), 2, 2))
ecris
Val(Mid(Range("H14"), 1, 2))

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
re,
si H14 étant sélectionnée, on lit dans la barre de formule '10:00
remplace
Val(Mid(Range("H14"), 2, 2))
par
Val(Mid(Range("H14"), 1, 2))
0