Userform qui recopie les informations dans le bon onglet au bon endroit

Salut les pros du VBA et bonne année à tous!!

J'ai créé un Userform avec une date automatique, différents champs avec liste déroulante et différents choix à cocher qu'il faut compléter.

image

En cliquant sur "Valider", voici ce que j'aimerais :

-> La date va nous rediriger vers l'onglet qui correspond au mois (j'ai des onglets qui vont de janvier à décembre). Une fois l'onglet sélectionné, j'aimerais que si le jour se situe entre le 01 et le 14, ce soit considéré comme le début du mois (colonnes C à H) et si c'est entre le 15 et le 31 ce soit considéré comme le milieu du mois (colonnes I à M).

Après, en fonction du mois et du jour, il faudra rechercher l'appareil en colonne B et retranscrire toutes les informations, voici le résultat que je souhaite :

Dans mon exemple, la date du 05.02.2023 correspond au début février, l'appareil B1 a été trouvé en ligne 4 et ensuite les informations sont retransmises comme ci-dessous. -> les couleurs et autres mises en forme c'est déjà ok, j'ai juste besoin d'un code pour compléter les champs.

image

Je vous glisse le document et vous remercie déjà chaleureusement pour votre aide

Grâce à vous, je m'améliore mais je débute avec les Userforms et là c'est un peu trop compliqué pour moi

22hgt-copie-2.xlsm (107.46 Ko)

Bonsoir Zacky

Voici un début de code pour définir la bonne feuille

Private Sub CommandButton2_Click() 'bouton valider pour insérer un test HGT
  Dim Ind As Integer, vMois As Integer
  Dim TabMois() As String
  Dim Sht As Worksheet
  Dim i%
  If Me.TextBox1 = "" Then
    MsgBox "Vous devez saisir une date !", vbCritical, "OUPS..."
    Me.TextBox1.SetFocus
    Exit Sub
  End If
  For i = 1 To 3
    If Me.Controls("Combobox" & i) = "" Then 'contrôle s'il y a bien une sélection dans les listes déroulantes
      MsgBox "Merci de compléter tous les champs du formulaire"
      Exit Sub
    End If
  Next i

  If CheckBox1 = False And CheckBox2 = False Then 'contrôle qu'il y a bien une sélection pour les cases à cocher
    MsgBox "Merci de cocher ok ou Nok pour les résultats sous : Normal"
    Exit Sub
  End If
  If CheckBox3 = False And CheckBox4 = False Then
    MsgBox "Merci de cocher ok ou Nok pour les résultats sous : LOW"
    Exit Sub
  End If
  If CheckBox5 = False And CheckBox6 = False Then
    MsgBox "Merci de cocher ok ou Nok pour les résultats sous : HIGHT"
    Exit Sub
  End If
  ' Quel mois
  vMois = Month(CDate(Me.TextBox1))
  TabMois = Split("Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre", ",")
  ' Définir la feuille qui va contenir les données
  Set Sht = ThisWorkbook.Sheets(TabMois(vMois - 1))
  ' Compléter les données..

End Sub

A+

Bonjour BrunoM45,

Grâce à ton petit bout de code et à un code que j'ai récupéré sur un de mes anciens documents, j'ai réussi à terminer mon code

J'ai inséré des tableaux sur les onglets Mois et avec un code pour tableau, j'ai facilement réussi à transférer les données comme souhaité.

Merci infiniment pour ton aide!!!

Au plaisir

Rechercher des sujets similaires à "userform qui recopie informations bon onglet endroit"