Macro Excel Pour Inserer Des Lignes/Colonnes

Fermé
tahamed Messages postés 26 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 24 novembre 2011 - 21 nov. 2011 à 10:41
tahamed Messages postés 26 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 24 novembre 2011 - 22 nov. 2011 à 10:14
Bonjour,


j'ai un programme Macro sur excel 2 feuilles (1ére masque de saisie, et la 2éme base de donnée) avec bouton enregistrer et modifier.

je souhaite insérer un ligne dans la 1ére feuille et une colonne dans la deuxième tout en gardant les premières fonction déjà préenregistrer.

Merci par avance pour votre aide.

Ci-joint une copie de mes macro déjà fait :


Private Sub CommandButton1_Click()
Dim Lign As Long, DrLig As Long
Dim NoSem As Integer
Dim Col As Byte, Lig As Byte
Dim Trouve As Range
Dim Plage As Range

Sheets("Masque de Saisie").Range("B7:P22").ClearContents
If Sheets("Masque de Saisie").Range("B3") = "" Then
MsgBox "Veuillez saisir un numéro de semaine en B3."
Exit Sub
ElseIf Not IsNumeric(Sheets("Masque de Saisie").Range("B3")) Then
MsgBox "Le numéro de semaine en B3 n'est pas un numéro valide."
Exit Sub
ElseIf Sheets("Masque de Saisie").Range("B3") <= 1 Or Sheets("Masque de Saisie").Range("B3") > 53 Then
MsgBox "Une année commence semaine 1 et se termine au maximum semaine 53. Changez le n° de semaine!"
Exit Sub
Else
NoSem = Sheets("Masque de Saisie").Range("B3")
End If

With Sheets("Retour")
.Range("A5").AutoFilter Field:=1, Criteria1:=NoSem
DrLig = .Range("A" & Rows.Count).End(xlUp).Row
Set Plage = .Range("A6:D" & DrLig)
Set Plage = Plage.Resize(Plage.Count - 1).SpecialCells(xlCellTypeVisible)
For Lign = Plage.Row To DrLig
Set Trouve = Sheets("Masque de Saisie").Rows(6).Find(.Cells(Lign, 2))
If Trouve Is Nothing Then
MsgBox "Une erreur de saisie dans les noms de clients!"
Exit Sub
Else
Col = Trouve.Column
End If
Set Trouve = Sheets("Masque de Saisie").Columns(1).Find(.Cells(Lign, 3))
If Trouve Is Nothing Then
MsgBox "La Semaine Sélectionné ne figure pas dans la base de données !"
Exit Sub
Else
Lig = Trouve.Row
End If
Set Trouve = Nothing
Sheets("Masque de Saisie").Cells(Lig, Col) = .Cells(Lign, 4)
Next
End With
End Sub

Private Sub CommandButton2_Click()
Dim Lign As Long
Dim NoSem As Integer
Dim Cel As Range, Trouve As Range, Plage As Range

Application.ScreenUpdating = False
With Sheets("Retour")
Set Trouve = .Columns(1).Find(Sheets("Masque de Saisie").Range("B2"))
End With
If Trouve Is Nothing Then
For Each Cel In Sheets("Masque de Saisie").Range("B8:P22")
If Cel.Value <> "" Then
With Sheets("Retour")
Lign = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & Lign) = Sheets("Masque de Saisie").Range("B2")
.Range("B" & Lign) = Sheets("Masque de Saisie").Cells(6, Cel.Column)
.Range("C" & Lign) = Sheets("Masque de Saisie").Cells(Cel.Row, 1)
.Range("D" & Lign) = Cel.Value
End With
End If
Next
Else
NoSem = Sheets("Masque de Saisie").Range("B3")
With Sheets("Retour")
.Range("A5").AutoFilter Field:=1
DrLig = .Range("A" & Rows.Count).End(xlUp).Row
For Lign = DrLig To 6 Step -1
If .Range("A" & Lign) = NoSem Then
.Rows(Lign).Delete
End If
Next
For Each Cel In Sheets("Masque de Saisie").Range("B8:P22")
If Cel.Value <> "" Then
Lign = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & Lign) = NoSem
.Range("B" & Lign) = Sheets("Masque de Saisie").Cells(6, Cel.Column)
.Range("C" & Lign) = Sheets("Masque de Saisie").Cells(Cel.Row, 1)
.Range("D" & Lign) = Cel.Value
End If
Next
End With
End If
Sheets("Masque de Saisie").Range("B7:P22").ClearContents
Application.ScreenUpdating = True
End Sub

A voir également:

3 réponses

tahamed Messages postés 26 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 24 novembre 2011
21 nov. 2011 à 11:28
Une petite question déjà, est ce que ce genre de Macro sont ecrit manuellement ou fais automatiquement sur excel ?

oui oui je sais je suis nul en Macro, et ce n'est pas moi qui a fait la première partie en haut !
0
tahamed Messages postés 26 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 24 novembre 2011
21 nov. 2011 à 15:53
Up !
0
tahamed Messages postés 26 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 24 novembre 2011
22 nov. 2011 à 10:14
personne ne veut m'aider !
0