Sub Ouvre() Dim ClasseurSource As Workbook, ClasseurCible As Workbook, CheminClasseur As String CheminClasseur = "C:\Documents and Settings\STAG3\Bureau\analyses.xls" If VerifOuvertureClasseur(CheminClasseur) Then MsgBox "Classeur déja ouvert." 'Que faire si déjà ouvert? Else Set ClasseurSource = Application.Workbooks.Open(CheminClasseur) End If End Sub Function VerifOuvertureClasseur(Fichier As String) As Boolean Dim x As Integer On Error Resume Next x = FreeFile() Open Fichier For Input Lock Write As #x 'préciser les options d'accès au fichier, ici verouillé en écriture... Close x If Err.Number 0 Then VerifOuvertureClasseur False If Err.Number 70 Then VerifOuvertureClasseur True On Error GoTo 0 End Function Sub RecupNumLot() Dim newlettre, lettre, s As String Dim numero As Integer Call Ouvre With ActiveWorkbook.Worksheets("Données Rapports").Range("A1:P108") Set c = .Find("n° lot:", LookIn:=xlValues) If Not c Is Nothing Then ' si c n'est pas vide firstAddress = c.Address End If End With s = Replace(firstAddress, "$", "") For i = 1 To Len(s) If IsNumeric(Mid(s, i, i)) Then lettre = Mid(s, 1, i - 1) numero = Mid(s, i, Len(s)) GoTo suit End If Next suit: newlettre = Chr(Asc(lettre) + 1) Windows("analyses.xls").Activate Range(newlettre & numero).Select Selection.Copy Windows("essai vba.xls").Activate Range("B1").Select ActiveSheet.Paste Windows("analyses.xls").Activate 'ActiveWindow.Close End Sub
Sub Ouvre() Dim ClasseurSource As Workbook, ClasseurCible As Workbook, CheminClasseur As String CheminClasseur = "C:\Documents and Settings\STAG3\Bureau\analyses.xls" If VerifOuvertureClasseur(CheminClasseur) Then MsgBox "Classeur déja ouvert." 'Que faire si déjà ouvert? Else Set ClasseurSource = Application.Workbooks.Open(CheminClasseur) End If End Sub Function VerifOuvertureClasseur(Fichier As String) As Boolean Dim x As Integer On Error Resume Next x = FreeFile() Open Fichier For Input Lock Write As #x 'préciser les options d'accès au fichier, ici verouillé en écriture... Close x If Err.Number 0 Then VerifOuvertureClasseur False If Err.Number 70 Then VerifOuvertureClasseur True On Error GoTo 0 End Function ' Recherche des éléments nécessaires dans le fichier Excel d'analyses Sub FindNumLot() Call Ouvre Workbooks("analyses.xls").Activate With ActiveWorkbook.Worksheets("Données Rapports").Range("A1:P108") Set c = .Find("n° lot:", LookIn:=xlValues) If Not c Is Nothing Then ' si c n'est pas vide firstAddress = c.Address 'Maintenant problème passer à l'adresse suivante ... Debug.Print (c.Value) End If End With End Sub
Cells.Find(What:="N° lot""", After:=ActiveCell).Activate 'chercher le texte "N° lot" dans le fichier xls s = Replace(ActiveCell.Address, "$", "") 'recuperer l'adresse de l'active cellule For i = 1 To Len(s) If IsNumeric(Mid(s, i, i)) Then 'separer l'alpha et les numeric letre = Mid(s, 1, i - 1) numero = Mid(s, i, Len(s)) GoTo suit End If Next suit: Range(letre & numero + 1).Select ' si vous voulez le champs suivant dans la même colonne Range(Chr(Asc(letre) + 1) & numero).Select ' si vous voulez le champs suivant dans la même ligne
Range(Chr(Asc(letre) + 1) & numero).Select
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionWorkbooks.Open Filename:="C:\Documents and Settings\STAG3\Bureau\analyses.xls" Cells.Find(What:="N° lot", After:=ActiveCell).Activate s = Replace(ActiveCell.Address, "$", "") For i = 1 To Len(s) If IsNumeric(Mid(s, i, i)) Then letre = Mid(s, 1, i - 1) numero = Mid(s, i, Len(s)) GoTo suit End If Next suit: Range(Chr(Asc(letre) + 1) & numero).Select Selection.Copy Windows("essais vba.xls").Activate Range("B1").Select ActiveSheet.Paste
Erreur d'éxecution 91 : Variable objet ou variable de bloc With non définie
Sub Ouvre() Dim ClasseurSource As Workbook, ClasseurCible As Workbook, CheminClasseur As String CheminClasseur = "C:\Documents and Settings\STAG3\Bureau\analyses.xls" If VerifOuvertureClasseur(CheminClasseur) Then MsgBox "Classeur déja ouvert." 'Que faire si déjà ouvert? Else Set ClasseurSource = Application.Workbooks.Open(CheminClasseur) End If End Sub Function VerifOuvertureClasseur(Fichier As String) As Boolean Dim x As Integer On Error Resume Next x = FreeFile() Open Fichier For Input Lock Write As #x 'préciser les options d'accès au fichier, ici verouillé en écriture... Close x If Err.Number 0 Then VerifOuvertureClasseur False If Err.Number 70 Then VerifOuvertureClasseur True On Error GoTo 0 End Function Sub RecupNumLot() Call Ouvre Cells.Find(What:="n° lot:", After:=ActiveCell).Activate s = Replace(ActiveCell.Address, "$", "") For i = 1 To Len(s) If IsNumeric(Mid(s, i, i)) Then lettre = Mid(s, 1, i - 1) numero = Mid(s, i, Len(s)) GoTo suit End If Next suit: Range(Chr(Asc(lettre) + 1) & numero).Select Selection.Copy Windows("essai vba.xls").Activate Range("B1").Select ActiveSheet.Paste End Sub
Cells.Find(What:="n° lot:", After:=ActiveCell).Activate s = Replace(ActiveCell.Address, "$", "")
Sub RecupNumLot() Call Ouvre With ActiveWorkbook.Worksheets("Données Rapports").Range("A1:P108") Cells.Find(What:="n° lot:", After:=ActiveCell).Activate s = Replace(ActiveCell.Address, "$", "") For i = 1 To Len(s) If IsNumeric(Mid(s, i, i)) Then lettre = Mid(s, 1, i - 1) numero = Mid(s, i, Len(s)) GoTo suit End If Next suit: Range(Chr(Asc(lettre) + 1) & numero).Select Selection.Copy Windows("essai vba.xls").Activate Range("B1").Select ActiveSheet.Paste End With End Sub
With ActiveWorkbook.Worksheets("Données Rapports").Range("A1:P108") Set c = .Find("n° lot:", LookIn:=xlValues) If Not c Is Nothing Then ' si c n'est pas vide firstAddress = c.Address End If End With s = Replace(firstAddress, "$", "") For i = 1 To Len(s) If IsNumeric(Mid(s, i, i)) Then lettre = Mid(s, 1, i - 1) numero = Mid(s, i, Len(s)) GoTo suit End If Next suit: Range(Chr(Asc(lettre) + 1) & numero).Select Selection.Copy Windows("essai vba.xls").Activate Range("B1").Select ActiveSheet.Paste
Erreur d'éxecution 1001 Erreur définie par l'application ou par l'objet
Range(Chr(Asc(lettre) + 1) & numero).Select