Bonjour, C'est bien de transmettre ton code. Cependant, peux-tu expliquer ce que tu veux faire. Quelles sont les questions dont tu voudrais avoir une réponse? MichD a écrit dans le message de groupe de discussion : Bonjour, Besoin d'aide pour une sauvegarde (Sub Recopie() Zone = Range("B65535").End(xlUp).Row - 15 Sheets("Données").Range("A" & Sheets("Données").Range("A65535").End(xlUp).Offset(1, 0).Row, "AP" & Sheets("Données").Range("A65535").End(xlUp).Offset(1 + Zone, 0).Row).Value = Sheets("listes").Range("A15", Sheets("listes").Range("AP15").Offset(Zone, 0)).Value End Sub) cette marco copie une partie d'un onglet sur un onglet données mais j'ai un problème de lancement? puis j'ai quelques questions sur effacement et le décochage
Bonjour,
C'est bien de transmettre ton code. Cependant, peux-tu expliquer ce que tu
veux faire. Quelles sont les questions dont tu voudrais avoir une réponse?
MichD
a écrit dans le message de groupe de discussion :
85022d60-ef31-47ca-a769-b29a52dfa1a8@googlegroups.com...
Bonjour, C'est bien de transmettre ton code. Cependant, peux-tu expliquer ce que tu veux faire. Quelles sont les questions dont tu voudrais avoir une réponse? MichD a écrit dans le message de groupe de discussion : Bonjour, Besoin d'aide pour une sauvegarde (Sub Recopie() Zone = Range("B65535").End(xlUp).Row - 15 Sheets("Données").Range("A" & Sheets("Données").Range("A65535").End(xlUp).Offset(1, 0).Row, "AP" & Sheets("Données").Range("A65535").End(xlUp).Offset(1 + Zone, 0).Row).Value = Sheets("listes").Range("A15", Sheets("listes").Range("AP15").Offset(Zone, 0)).Value End Sub) cette marco copie une partie d'un onglet sur un onglet données mais j'ai un problème de lancement? puis j'ai quelques questions sur effacement et le décochage
Dario Gmail
Bonjour MichD, je m'explique mon besoin principal et d'archiver une fiche qui comprend tex te et des cases a cocher, j'aimerai archiver celle-ci, alors j'ai créer un onglet avec les liais ons sur ma fiche manuel et case a coché puis une macro qui sauvegarde dans une base de donnée (la j'ai la macr o cité mais qui fonctionne pas très bien) puis le raz de la fiche et des coches ensuite j'aimerai rechercher dans la base de données la dernière fiche sauvegarder avec certain critères (zone impacts) puis la mettre en forme sur une fiche + case coché du même type que la principal ... Merci
Bonjour MichD,
je m'explique mon besoin principal et d'archiver une fiche qui comprend tex te et des cases a cocher,
j'aimerai archiver celle-ci, alors j'ai créer un onglet avec les liais ons sur ma fiche manuel et case a coché
puis une macro qui sauvegarde dans une base de donnée (la j'ai la macr o cité mais qui fonctionne pas très bien)
puis le raz de la fiche et des coches
ensuite j'aimerai rechercher dans la base de données la dernière fiche sauvegarder avec certain critères (zone impacts) puis la mettre en forme sur une fiche + case coché du même type que la principal ...
Bonjour MichD, je m'explique mon besoin principal et d'archiver une fiche qui comprend tex te et des cases a cocher, j'aimerai archiver celle-ci, alors j'ai créer un onglet avec les liais ons sur ma fiche manuel et case a coché puis une macro qui sauvegarde dans une base de donnée (la j'ai la macr o cité mais qui fonctionne pas très bien) puis le raz de la fiche et des coches ensuite j'aimerai rechercher dans la base de données la dernière fiche sauvegarder avec certain critères (zone impacts) puis la mettre en forme sur une fiche + case coché du même type que la principal ... Merci
Michd
On peut écrire ton code comme ceci. Mais si tu n'explique pas ce que tu veux faire, difficile d'optimiser ce code! '-------------------------------------- Sub Recopie() Dim DerLig As Long, Zone As Long Zone = Range("B65535").End(xlUp).Row - 15 With Sheets("Données") 'Trouve la dernière ligne occupée de la plage A:AP 'j'additionne 1 pour avoir la première ligne disponible DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 .Range("A" & DerLig & ":AP" & DerLig).Value = _ Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _ Offset(Zone, 0)).Value End Sub '-------------------------------------- MichD
On peut écrire ton code comme ceci. Mais si tu n'explique pas ce que tu veux
faire, difficile d'optimiser ce code!
'--------------------------------------
Sub Recopie()
Dim DerLig As Long, Zone As Long
Zone = Range("B65535").End(xlUp).Row - 15
With Sheets("Données")
'Trouve la dernière ligne occupée de la plage A:AP
'j'additionne 1 pour avoir la première ligne disponible
DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Range("A" & DerLig & ":AP" & DerLig).Value = _
Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _
Offset(Zone, 0)).Value
On peut écrire ton code comme ceci. Mais si tu n'explique pas ce que tu veux faire, difficile d'optimiser ce code! '-------------------------------------- Sub Recopie() Dim DerLig As Long, Zone As Long Zone = Range("B65535").End(xlUp).Row - 15 With Sheets("Données") 'Trouve la dernière ligne occupée de la plage A:AP 'j'additionne 1 pour avoir la première ligne disponible DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 .Range("A" & DerLig & ":AP" & DerLig).Value = _ Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _ Offset(Zone, 0)).Value End Sub '-------------------------------------- MichD
Michd
Désolé, je ne comprends pas, il faut être plus explicite. A ) Quel est le nom de l'onglet de données que tu veux copier? Quelle est l'adresse de la plage de cellule à copier? B ) Sur quel onglet (nom) de ton classeur veux-tu copier cette plage de cellules? À quel endroit dans cette feuille? C ) Quel est le nom de la feuille que tu veux archiver? Où veux-tu l'archiver? Dans un classeur existant? Si oui, quel est le chemin pour atteindre ce classeur? Quel est le nom de ce classeur ? Tu veux ajouter la feuille à ce classeur ? Tu es dans Excel, chaque classeur, chaque feuille a un nom, chaque plage de cellules, une adresse. Pour pouvoir écrire du code, tu dois être très explicite dans le texte de ta question. MichD
Désolé, je ne comprends pas, il faut être plus explicite.
A ) Quel est le nom de l'onglet de données que tu veux copier? Quelle est
l'adresse de la plage de cellule à copier?
B ) Sur quel onglet (nom) de ton classeur veux-tu copier cette plage de
cellules? À quel endroit dans cette feuille?
C ) Quel est le nom de la feuille que tu veux archiver? Où veux-tu
l'archiver? Dans un classeur existant? Si oui, quel est le chemin pour
atteindre ce classeur? Quel est le nom de ce classeur ? Tu veux ajouter la
feuille à ce classeur ?
Tu es dans Excel, chaque classeur, chaque feuille a un nom, chaque plage de
cellules, une adresse. Pour pouvoir écrire du code, tu dois être très
explicite dans le texte de ta question.
Désolé, je ne comprends pas, il faut être plus explicite. A ) Quel est le nom de l'onglet de données que tu veux copier? Quelle est l'adresse de la plage de cellule à copier? B ) Sur quel onglet (nom) de ton classeur veux-tu copier cette plage de cellules? À quel endroit dans cette feuille? C ) Quel est le nom de la feuille que tu veux archiver? Où veux-tu l'archiver? Dans un classeur existant? Si oui, quel est le chemin pour atteindre ce classeur? Quel est le nom de ce classeur ? Tu veux ajouter la feuille à ce classeur ? Tu es dans Excel, chaque classeur, chaque feuille a un nom, chaque plage de cellules, une adresse. Pour pouvoir écrire du code, tu dois être très explicite dans le texte de ta question. MichD
Et c'est quoi ton problème! En passant, le "chatting" ne m'intéresse pas. Ou bien tu expliques ce que tu veux ou bien tu t'organises tout seul. La publication de code ou du classeur ne m'indique pas ce que tu désires effectuer comme travail. J'espère être clair! MichD
Et c'est quoi ton problème!
En passant, le "chatting" ne m'intéresse pas. Ou bien tu expliques ce que tu
veux ou bien tu t'organises tout seul. La publication de code ou du classeur
ne m'indique pas ce que tu désires effectuer comme travail. J'espère être
clair!
Et c'est quoi ton problème! En passant, le "chatting" ne m'intéresse pas. Ou bien tu expliques ce que tu veux ou bien tu t'organises tout seul. La publication de code ou du classeur ne m'indique pas ce que tu désires effectuer comme travail. J'espère être clair! MichD
Michd
J'ai modifié la procédure comme ceci. L'utilisation de With ... End With permet de désigner les objets avec lesquels on travaille. En écrivant With Worksheets("Listes") on spécifie que l'objet "Range" appartient à cette feuille. Attention, note le "point" (.) devant le mot range, qui désigne bien que cet objet "Range" appartient à la feuille "Listes". Cela prend un peu de pratique, mais facilite la compréhension du code par n'importe quel initié. '---------------------------------------------- Sub Recopie() Dim DerLig As Long, Zone As Long With Worksheets("Listes") Zone = .Range("B65535").End(xlUp).Row - 15 End With With Sheets("Données") 'Trouve la dernière ligne occupée de la plage A:AP 'j'additionne 1 pour avoir la première ligne disponible DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 .Range("A" & DerLig & ":AP" & DerLig).Value = _ Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _ Offset(Zone, 0)).Value End With End Sub '---------------------------------------------- MichD
J'ai modifié la procédure comme ceci. L'utilisation de With ... End With
permet de désigner les objets avec lesquels on travaille.
En écrivant With Worksheets("Listes") on spécifie que l'objet "Range"
appartient à cette feuille. Attention, note le "point" (.) devant le mot
range, qui désigne bien que cet objet "Range" appartient à la feuille
"Listes". Cela prend un peu de pratique, mais facilite la compréhension du
code par n'importe quel initié.
'----------------------------------------------
Sub Recopie()
Dim DerLig As Long, Zone As Long
With Worksheets("Listes")
Zone = .Range("B65535").End(xlUp).Row - 15
End With
With Sheets("Données")
'Trouve la dernière ligne occupée de la plage A:AP
'j'additionne 1 pour avoir la première ligne disponible
DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Range("A" & DerLig & ":AP" & DerLig).Value = _
Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _
Offset(Zone, 0)).Value
End With
End Sub
'----------------------------------------------
J'ai modifié la procédure comme ceci. L'utilisation de With ... End With permet de désigner les objets avec lesquels on travaille. En écrivant With Worksheets("Listes") on spécifie que l'objet "Range" appartient à cette feuille. Attention, note le "point" (.) devant le mot range, qui désigne bien que cet objet "Range" appartient à la feuille "Listes". Cela prend un peu de pratique, mais facilite la compréhension du code par n'importe quel initié. '---------------------------------------------- Sub Recopie() Dim DerLig As Long, Zone As Long With Worksheets("Listes") Zone = .Range("B65535").End(xlUp).Row - 15 End With With Sheets("Données") 'Trouve la dernière ligne occupée de la plage A:AP 'j'additionne 1 pour avoir la première ligne disponible DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 .Range("A" & DerLig & ":AP" & DerLig).Value = _ Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _ Offset(Zone, 0)).Value End With End Sub '---------------------------------------------- MichD
Dario Gmail
Le lundi 12 mars 2018 20:20:05 UTC+1, Michd a écrit :
J'ai modifié la procédure comme ceci. L'utilisation de With ... End With permet de désigner les objets avec lesquels on travaille. En écrivant With Worksheets("Listes") on spécifie que l'objet " Range" appartient à cette feuille. Attention, note le "point" (.) devant le mot range, qui désigne bien que cet objet "Range" appartient à la f euille "Listes". Cela prend un peu de pratique, mais facilite la compréhens ion du code par n'importe quel initié. '---------------------------------------------- Sub Recopie() Dim DerLig As Long, Zone As Long With Worksheets("Listes") Zone = .Range("B65535").End(xlUp).Row - 15 End With With Sheets("Données") 'Trouve la dernière ligne occupée de la plage A:AP 'j'additionne 1 pour avoir la première ligne disponible DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 .Range("A" & DerLig & ":AP" & DerLig).Value = _ Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _ Offset(Zone, 0)).Value End With End Sub '---------------------------------------------- MichD
Merci pour la précision maintenant j'aimerai ajouter le raz de la fiche d'idée que je viens de sauvegarder å;G5;D7;D12;D16;D24;E33;G33;D36;F67:H74;F76:F77 les zone à vider a insi que décocher les cases à cocher de cette fiche Puis est il possible de faire une recherche dans l'onglet 'données' af in de remplir la fiche (fonction décalé) ainsi de coché cell e ci? Merci
Le lundi 12 mars 2018 20:20:05 UTC+1, Michd a écrit :
J'ai modifié la procédure comme ceci. L'utilisation de With ... End With
permet de désigner les objets avec lesquels on travaille.
En écrivant With Worksheets("Listes") on spécifie que l'objet " Range"
appartient à cette feuille. Attention, note le "point" (.) devant le mot
range, qui désigne bien que cet objet "Range" appartient à la f euille
"Listes". Cela prend un peu de pratique, mais facilite la compréhens ion du
code par n'importe quel initié.
'----------------------------------------------
Sub Recopie()
Dim DerLig As Long, Zone As Long
With Worksheets("Listes")
Zone = .Range("B65535").End(xlUp).Row - 15
End With
With Sheets("Données")
'Trouve la dernière ligne occupée de la plage A:AP
'j'additionne 1 pour avoir la première ligne disponible
DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Range("A" & DerLig & ":AP" & DerLig).Value = _
Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _
Offset(Zone, 0)).Value
End With
End Sub
'----------------------------------------------
MichD
Merci pour la précision
maintenant j'aimerai ajouter le raz de la fiche d'idée que je viens de sauvegarder
=E5;G5;D7;D12;D16;D24;E33;G33;D36;F67:H74;F76:F77 les zone à vider a insi que décocher les cases à cocher de cette fiche
Puis est il possible de faire une recherche dans l'onglet 'données' af in de remplir la fiche (fonction décalé) ainsi de coché cell e ci?
Le lundi 12 mars 2018 20:20:05 UTC+1, Michd a écrit :
J'ai modifié la procédure comme ceci. L'utilisation de With ... End With permet de désigner les objets avec lesquels on travaille. En écrivant With Worksheets("Listes") on spécifie que l'objet " Range" appartient à cette feuille. Attention, note le "point" (.) devant le mot range, qui désigne bien que cet objet "Range" appartient à la f euille "Listes". Cela prend un peu de pratique, mais facilite la compréhens ion du code par n'importe quel initié. '---------------------------------------------- Sub Recopie() Dim DerLig As Long, Zone As Long With Worksheets("Listes") Zone = .Range("B65535").End(xlUp).Row - 15 End With With Sheets("Données") 'Trouve la dernière ligne occupée de la plage A:AP 'j'additionne 1 pour avoir la première ligne disponible DerLig = .Range("A:AP").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 .Range("A" & DerLig & ":AP" & DerLig).Value = _ Sheets("listes").Range("A15", Sheets("listes").Range("AP15"). _ Offset(Zone, 0)).Value End With End Sub '---------------------------------------------- MichD
Merci pour la précision maintenant j'aimerai ajouter le raz de la fiche d'idée que je viens de sauvegarder å;G5;D7;D12;D16;D24;E33;G33;D36;F67:H74;F76:F77 les zone à vider a insi que décocher les cases à cocher de cette fiche Puis est il possible de faire une recherche dans l'onglet 'données' af in de remplir la fiche (fonction décalé) ainsi de coché cell e ci? Merci
Michd
Cette procédure efface le contenu de la plage mentionnée + décoche toutes les cases à cocher '------------------------------------------- Sub test() Dim Arr(), Elt As Variant, Sh As Shape Arr = Array("E5", "G5", "D7", "D12", "D16", _ "D24", "E33", "G33", "D36", "F67:H74", "F76:F77") With Worksheets("Fiche idée") For Each elt In Arr If .Range(elt).Cells.Count > 1 Then .Range(elt).Clear ElseIf .Range(elt).MergeArea.Cells.Count > 1 Then .Range(elt).MergeArea.Clear Else .Range(elt).Clear End If Next For Each Sh In .Shapes If TypeName(Sh.OLEFormat.Object) = "CheckBox" Then Sh.OLEFormat.Object.Value = False End If Next End With End Sub '------------------------------------------- MichD
Cette procédure efface le contenu de la plage mentionnée + décoche toutes
les cases à cocher
'-------------------------------------------
Sub test()
Dim Arr(), Elt As Variant, Sh As Shape
Arr = Array("E5", "G5", "D7", "D12", "D16", _
"D24", "E33", "G33", "D36", "F67:H74", "F76:F77")
With Worksheets("Fiche idée")
For Each elt In Arr
If .Range(elt).Cells.Count > 1 Then
.Range(elt).Clear
ElseIf .Range(elt).MergeArea.Cells.Count > 1 Then
.Range(elt).MergeArea.Clear
Else
.Range(elt).Clear
End If
Next
For Each Sh In .Shapes
If TypeName(Sh.OLEFormat.Object) = "CheckBox" Then
Sh.OLEFormat.Object.Value = False
End If
Next
End With
End Sub
'-------------------------------------------
Cette procédure efface le contenu de la plage mentionnée + décoche toutes les cases à cocher '------------------------------------------- Sub test() Dim Arr(), Elt As Variant, Sh As Shape Arr = Array("E5", "G5", "D7", "D12", "D16", _ "D24", "E33", "G33", "D36", "F67:H74", "F76:F77") With Worksheets("Fiche idée") For Each elt In Arr If .Range(elt).Cells.Count > 1 Then .Range(elt).Clear ElseIf .Range(elt).MergeArea.Cells.Count > 1 Then .Range(elt).MergeArea.Clear Else .Range(elt).Clear End If Next For Each Sh In .Shapes If TypeName(Sh.OLEFormat.Object) = "CheckBox" Then Sh.OLEFormat.Object.Value = False End If Next End With End Sub '------------------------------------------- MichD
Michd
Lorsque j'aurai compris ta question, tu auras une réponse. C'est à toi d'être clair dans ta question, je n'ai pas à prendre du temps seulement pour tenter de comprendre la question. MichD
Lorsque j'aurai compris ta question, tu auras une réponse.
C'est à toi d'être clair dans ta question, je n'ai pas à prendre du temps
seulement pour tenter de comprendre la question.
Lorsque j'aurai compris ta question, tu auras une réponse. C'est à toi d'être clair dans ta question, je n'ai pas à prendre du temps seulement pour tenter de comprendre la question. MichD