Macro Excel copier / coller

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
Configuration: Windows Vista Internet Explorer 7.0

5 réponses

  1. Contributeur
    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))
    1. Contributeur
      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))
      
      
      1. Contributeur
        J'aurai peut etre du préciser

        bin oui
        désolé

        Michel
        1. 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
          1. Contributeur
            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