Débutant avec l'Object case

Bonjour à tous

Si j'ai bien compris en lisant sur les diffèrent forum et vidéo

on peux inséré des case dans des case

Premièrement si on peux pas je sait pas ou allez alors

deuxième si on peut alors viens mon problème ou je crois coincé en tout cas quand je test la macro le debugger m'arrête la.

Public Company As Variant, Worker As Variant

Private Sub BtWorkerIN_Click()

    Dim Col As String
    Col = Format(Now(), "d")
    Company = CBCompanyIn.Text
    Worker = CbNameIN.Text
    If Len(Me.CBCompanyIn) = "" Then
    Me.LblError = "Select Company"
    Me.CBCompanyIn.SetFocus
    ElseIf Len(Me.CbNameIN) = "" Then
    Me.LblError = "Select Name"
    Me.CbNameIN.SetFocus
    ElseIf Len(Me.CbBadgeIn) = "" Then
    Me.LblError = "Select Badge"
    Me.CbBadgeIn.SetFocus
    ElseIf Len(Me.CbsiteIn) = "" Then
    Me.LblError = "Select Site"
    Me.CbsiteIn.SetFocus
    ElseIf Len(Me.CbEntranceIN) = "" Then
    Me.LblError = "Select Entrance"
    Me.CbEntranceIN.SetFocus
   Else
    Report.Activate
    Range("F1048576").End(xlUp).Offset(1, 0).Select
    ActiveCell.Value = ActiveCell.Offset(-1, 0) + 1
    ActiveCell.Offset(0, 1) = Me.TxtTimeIN.Value
    ActiveCell.Offset(0, 2) = "IN " & Me.CbNameIN.Value & " by " & Me.CbEntranceIN.Value & "(" & Me.CbsiteIn.Value & ").He take the badge" & CbBadgeIn.Value & "."

        Select Case Company
            Case "Company"
                Select Case Worker
                    Case "Nom"
                      Workbooks("Mouvements.xlsx").Worksheets("ATALIAN").Range(Cells(8, Col)).Value = Me.TxtTimeIN.Value 'c'est ici que ca plante
                    Case 1
                    Case 2
                    Case 4
                End Select
            Case "VEOLLIA"

            Case "BRUNONIELS"

            Case "SIPWELL"

            Case "OTHERS"

        End Select
    End If

Je vous remercie d'avance de toute aide que vous pourrez m'apportre

Bonjour,

Quel est le message d'erreur ? Quel est le mot en surbrillance ?

Fournir juste ce qu'il faut du classeur pour pouvoir activer le UserForm.

A+

Bonjour hisuky82, Galopin01,

Dans ces deux lignes la variable Col est dimensionné en texte, puis c'est effectivement du texte que Format(etc...) va donner.

 Dim Col As String
    Col = Format(Now(), "d")

Par contre ci dessous, pour Cells, Col doit être numérique. Donc format integer, tout comme le 8.

Worksheets("ATALIAN").Range(Cells(8, Col)).Value

Alors il faut corriger le Dim ainsi que la 2ième ligne en convertissant en numérique le texte sorti par Format(Now...

Mais il serait plus simple de faire Col = Day(Now) qui donnera directement un nombre.

je vais test ca je connaissais pas le day mais l'erreur ce fait plus bas

image

l'erreur qu'il renvoi est 1004

et les 2 fichier Excel sont ouvert

les 22 question reste d'actualité est-ce que je peux imbriquer des Select case

et si oui comment faire pour que l'action se fasse

Petit info si vous avec un code qui permet de récupérer le nom de la combo qui est identique au nom de feuille de l autre classeur.

je suis preneur car de basse je voulais faire un nom de feuille dynamique avec la valeur de la cb et simplement case les info cells

A nouveau,

Une fois corrigé Col en numérique. Il faut simplifier.

Workbooks("Mouvements.xlsx").Worksheets("ATALIAN").Range(Cells(8, Col)).Value = Me.TxtTimeIN.Value

Cette ligne serait plus simple en

Cible = Me.TxtTimeIN.Value
'Stop
Worbooks("Mouvements.xlsx").Sheets("ATALIAN").Cells(8,Col).value = Cible

J'ai placé un stop (ôter le commentaire) pour qu'il soit opérationnel.

Cela va arrêter ta macro et te permettre de vérifier la valeur de Cible en passant la souris au dessus du terme.

Et en même temps de vérifier d'autre variables. Après faire F5 pour continuer la macro.

Le fait d'insérer plusieurs Select Case n'a pas d'incidence à partir du moment ou chacun est fermé par un End select.

re et merci

en réfléchissant et en cherchant un peu je me suis doute que les bon doc était pas activer

je vous met le code au cas ou mais du coup ca marche impec dommage que j'arrive pas à le réduire suis sur que ca dois être

Workbooks("Mouvements").Activate
        Select Case Company
            Case "ATALIAN"
                ActiveWorkbook.Sheets("ATALIAN").Activate
                    Select Case Worker
                    Case "Murillo Pedro"
                      ActiveSheet.Cells(8, Col + 2).Value = Me.TxtTimeIN.Value
                    Case 1
                    Case 2
                    Case 4
                End Select

possible mais je fait avec mes moyen

Rechercher des sujets similaires à "debutant object case"