Select Case str.Text Case "#N/A" 'Je n'ai pas compris l'intérêt de cette ligne, de plus, elle fait une erreur de syntaxe Range("A65536").End(xlUp).Row - 1 Case "001" Set MaFeuille = Sheets("F001") Case "F003" Set MaFeuille = Sheets("F003") End Select
Range("A65536").Select Selection.End(xlUp).Select Str = CStr(Selection.Value) Do While (IsError(Selection.Value)) Or (Len(Str) = 0) Range(ActiveCell.Address).Offset(-1, 0).Select Str = CStr(Selection.Value) Loop Select Case Str Case "001" Set maFeuille = Sheets("F001") Case "F003" Set maFeuille = Sheets("F003") Case Else MsgBox "Résultat n'est pas ""001"", ni ""F003""" End Select
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim Reference As String, MaFeuille As Worksheet Reference=Selection.Txt Select Case Reference Case "#N/A" 'Moi aussi Je n'ai pas compris l'intérêt de cette ligne même avec ton explication car cette ligne ne sert à rien !!! Range("A65536").End(xlUp).Row - 1 Case "001" '<-- pourquoi 001 ? cela ne devrait pas plutôt être F001 ? Set MaFeuille = Sheets("F001") Case "F003" Set MaFeuille = Sheets("F003") End Select
Dim DerniereLigne As Long Dim Reference As String, MaFeuille As Worksheet ' "Columns("b").Rows.Count" au lieu de "B65536" permet d'être compatible avec toutes les versions d'excel. DerniereLigne = Range("B" & Columns("B").Rows.Count).End(xlUp).Row 'Application.WorksheetFunction.IsNA() renvoi "true" si la cellule spécifiée contient une erreur de type N/A Do While Application.WorksheetFunction.IsNA(Range("B" & DerniereLigne)) = True DerniereLigne = DerniereLigne - 1 Loop Reference = Range("B" & DerniereLigne).Txt '.Txt permet de récuperer la valeur de la cellule directement sous forme de ' texte sans avoir à passer par une conversion. Select Case Reference Case "001" Set maFeuille = Sheets("F001") Case "F003" Set maFeuille = Sheets("F003") End Select
Sub Commande() Dim Str As String, MaFeuille As Worksheet Range("B65536").Select selection.End(xlUp).Select Str = CStr(selection.Value) Do While (IsError(selection.Value)) Or (Len(Str) = 0) Range(ActiveCell.Address).Offset(-1, 0).Select Str = CStr(selection.Value) Loop Select Case Str Case "F001" Set MaFeuille = Sheets("F001") End Select ActiveSheet.Range("D2").copy MaFeuille.Range("A21:A" & MaFeuille.Range("A65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True ActiveSheet.Range("F2").copy MaFeuille.Range("C21:C" & MaFeuille.Range("C65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True ActiveSheet.Range("H2").copy MaFeuille.Range("B21:B" & MaFeuille.Range("B65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True ActiveSheet.Range("F" & ActiveSheet.Range("F65356").End(xlUp).Row).copy MaFeuille.Range("D21:D" & MaFeuille.Range("D65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True ActiveSheet.Range("G" & ActiveSheet.Range("G65356").End(xlUp).Row).copy MaFeuille.Range("E21:E" & MaFeuille.Range("E65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True ActiveSheet.Range("C" & ActiveSheet.Range("C65536").End(xlUp).Row).copy MaFeuille.Range("C5").PasteSpecial xlPasteValues, , , True Range("E65536").Select selection.End(xlUp).Select Str = CStr(selection.Value) Do While (IsError(selection.Value)) Or (Len(Str) = 0) Range(ActiveCell.Address).Offset(-1, 0).Select Str = CStr(selection.Value) Loop MaFeuille.Range("C6") = Str End Sub
et a bientot pour de nouvelle aventures ^^