bonjour a tous ,
avec l'aide de tototiti2008 et de hippolite que je remercie infiniment au passage ils m'ont apporté leur competence et savoir faire pour l'elaboration d'un projet .
toutefois je souhaite ajouter une fonction a ce projet , en esperant me faire comprendre car j ai eu du mal sur un autre post , n'etant pas pro du vba
le code que j ai actullement et qui fontionne parfaitement est le suivant :
Dim Lig As Long
Dim Col As Long
Dim NbrLig As Long
Dim NumLig As Long
ActiveSheets = Sheets("Base").range("h5").Value
Col = 1
With Sheets("base")
For Lig = 15 To 27
If .Cells(Lig, Col).Value <> "XXXXX" Then 'recherche sur la plage de la ligne 15 a27 les ligne ne comportant pas de "XXXXX"
.range("A" & Lig & ":C" & Lig & ",H" & Lig & ":I" & Lig & ",L" & Lig & ":N" & Lig).Copy
(copie des colonnes dont la premiere cellule ne contien pas de "xxxxx")
Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Select
( range a la suite les lignes copiée)
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Base").range("h5").Value
(rajoute en debut de chaque ligne une information copié sur la feuille "base" soit une date)
Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = Sheets("Base").range("h11").Value
(rajoute en debut de chaque ligne copié en seconde cellule une information copié sur la feuille "base" )
Worksheets(Sheets("base").range("H9").Value).Activate
(selectionne l'onglet par rapport a la valleur de la cellule "h9"" de la feuille base)
(active la feuille et colle les données)
ActiveSheet.Paste
End If
Next Lig
je souhaite avoir la meme procedure mais que cette macro effectue l'operation du classeur a un autre classeur.
le classeur actif ou est la macro et ou doit etre copié les donnees ne nome ("range donneeBon3.xls")
le classeur ou doit s effectuer le collage de ces donnees se nome ("prod.xls")
ce classeur se trouve dans le repertoire c:\doc
ce que j arrive a faire a partir du classeur ("range donneeBon3.xls"), c est d ouvrir le classeur ("prod.xls") se trouvant sur c:\doc.
une fois ce classeur ouvert je cree une nouvelle feuille si elle n existe pas , en copiant le modele se trouvant sur
("prod.xls").
ce que je n arrive pas a faire c est modifier le code si dessus pour enregistrer les donnees sur la nouvelle feuille cree.
ci dessous le code que j utilise pour ouvrir mon classeur et creer la feuille .
Dim VNom As String
VNom = Sheets("base").range("H9")
Workbooks.Open Filename:="C:\doc\prod.xls"
On Error Resume Next
If FeuilleExiste(VNom) Then
MsgBox "feuille" & VNom & " existe déjà"
Exit Sub
Else
Sheets("MODELE").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = VNom
End If
merci a tous de votre aide et proposition
amicalement ghislain
avec l'aide de tototiti2008 et de hippolite que je remercie infiniment au passage ils m'ont apporté leur competence et savoir faire pour l'elaboration d'un projet .
toutefois je souhaite ajouter une fonction a ce projet , en esperant me faire comprendre car j ai eu du mal sur un autre post , n'etant pas pro du vba
le code que j ai actullement et qui fontionne parfaitement est le suivant :
Dim Lig As Long
Dim Col As Long
Dim NbrLig As Long
Dim NumLig As Long
ActiveSheets = Sheets("Base").range("h5").Value
Col = 1
With Sheets("base")
For Lig = 15 To 27
If .Cells(Lig, Col).Value <> "XXXXX" Then 'recherche sur la plage de la ligne 15 a27 les ligne ne comportant pas de "XXXXX"
.range("A" & Lig & ":C" & Lig & ",H" & Lig & ":I" & Lig & ",L" & Lig & ":N" & Lig).Copy
(copie des colonnes dont la premiere cellule ne contien pas de "xxxxx")
Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Select
( range a la suite les lignes copiée)
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets("Base").range("h5").Value
(rajoute en debut de chaque ligne une information copié sur la feuille "base" soit une date)
Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = Sheets("Base").range("h11").Value
(rajoute en debut de chaque ligne copié en seconde cellule une information copié sur la feuille "base" )
Worksheets(Sheets("base").range("H9").Value).Activate
(selectionne l'onglet par rapport a la valleur de la cellule "h9"" de la feuille base)
(active la feuille et colle les données)
ActiveSheet.Paste
End If
Next Lig
je souhaite avoir la meme procedure mais que cette macro effectue l'operation du classeur a un autre classeur.
le classeur actif ou est la macro et ou doit etre copié les donnees ne nome ("range donneeBon3.xls")
le classeur ou doit s effectuer le collage de ces donnees se nome ("prod.xls")
ce classeur se trouve dans le repertoire c:\doc
ce que j arrive a faire a partir du classeur ("range donneeBon3.xls"), c est d ouvrir le classeur ("prod.xls") se trouvant sur c:\doc.
une fois ce classeur ouvert je cree une nouvelle feuille si elle n existe pas , en copiant le modele se trouvant sur
("prod.xls").
ce que je n arrive pas a faire c est modifier le code si dessus pour enregistrer les donnees sur la nouvelle feuille cree.
ci dessous le code que j utilise pour ouvrir mon classeur et creer la feuille .
Dim VNom As String
VNom = Sheets("base").range("H9")
Workbooks.Open Filename:="C:\doc\prod.xls"
On Error Resume Next
If FeuilleExiste(VNom) Then
MsgBox "feuille" & VNom & " existe déjà"
Exit Sub
Else
Sheets("MODELE").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = VNom
End If
merci a tous de votre aide et proposition
amicalement ghislain