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

        bin oui
        désolé

        Michel
        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
            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))